从Json.net获取值

Rog*_*ger 10 json.net

我有一个情况我会得到一些已知值从JSON的API,但随后需要得到一组未知值(例如在此JSON密码和电子邮件错误):

{"error":{"httpCode":400,"message":"Invalid parameters"},  "message":{"errors":
    {"password":"is too short"
    ,"email":"is invalid"}}}
Run Code Online (Sandbox Code Playgroud)

我知道我总会得到'错误'和'message.errors'.我提前不知道令牌/属性是什么(密码,电子邮件)

我正在尝试使用Json.net来获取它们,然后写一个字符串生成器:"密码太短,电子邮件无效"

 JObject root = JObject.Parse(<json string>);
Run Code Online (Sandbox Code Playgroud)

那段代码给了我root.Properties,但是我做错了,因为我没有从它的孩子那里得到属性.我得到了什么?

谢谢,

Dav*_*all 13

可能有更好的方法来执行此操作,但以下代码可用于提取errors数组中密钥对的键和值:

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);                
}
Run Code Online (Sandbox Code Playgroud)