2011-04-10 75 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