2011-04-10 45 views
10

我有一種情況,我將從json中的api獲取一些已知值,但需要獲取一組未知值(例如,此json中的密碼和電子郵件錯誤):從Json.net獲取值

{"error":{"httpCode":400,"message":"Invalid parameters"}, "message":{"errors": 
    {"password":"is too short" 
    ,"email":"is invalid"}}} 

我知道我總會得到'錯誤'和'message.errors'。我不知道什麼標記/屬性會提前(密碼,電子郵件)

我想使用Json.net得到他們,只寫一個字符串生成器: 「密碼太短,電子郵件是無效的」

JObject root = JObject.Parse(<json string>); 

代碼給我root.Properties,但我做錯了什麼,因爲我不下車,孩子的屬性。我沒有得到什麼?

感謝,

回答

13

有可能是一個更好的方式來做到這一點,但下面的代碼爲我工作來提取錯誤數組中的密鑰對的key和value:

string data = 
    @"{""error"":{""httpCode"":400,""message"":""Invalid parameters""}, ""message"":{""errors"": 
    {""password"":""is too short"" 
    ,""email"":""is invalid""}}}"; 

JObject jObject = JObject.Parse(data); 

JObject errors = (JObject)jObject["message"]["errors"]; 

foreach(var error in errors) 
{ 
    MessageBox.Show(p.Key + p.Value);     
} 
+0

謝謝你,謝謝。 – Roger 2011-04-11 01:29:16