从Json.net获取值

时间:2011-04-10 22:06:00

标签: json.net

我有一种情况,我会从json中的api获取一些已知值,但是然后需要获取一组未知值(例如此json中的密码和电子邮件错误):

{"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,但我做错了,因为我没有得到它的孩子的属性。我得到了什么?

谢谢,

1 个答案:

答案 0 :(得分:13)

可能有更好的方法可以做到这一点,但以下代码可以帮我提取错误数组中密钥对的密钥和值:

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);                
}