如何从这个Json获取文本(使用Json.net JObject)

时间:2013-10-22 01:22:02

标签: c# json json.net

我有这个json

{
  "Message": "The request is invalid.",
  "ModelState": {
    "UserExists": [
      "userName already exists in db."
    ]
  }
}

我可以尝试遍历所有模型状态错误(在这种情况下只有1但可能有更多)

但我无法弄清楚如何将文字输出。

 JObject o = JObject.Parse(response.Content);
                        var errors = o["ModelState"];
                        foreach (var error in errors)
                        {

                        }

1 个答案:

答案 0 :(得分:1)

你得到的ModelState是一个带有UserExists属性的对象,它有一个错误字符串数组。

因此,您首先必须迭代ModelState的所有属性,然后迭代数组中的所有值。

var response = "{\"Message\": \"The request is invalid.\", \"ModelState\": { \"UserExists\": [ \"userName already exists in db.\" ], \"SomeOtherError\": [ \"another error.\", \"two in 1\" ] } }";
var o = JObject.Parse(response);
var errors = o["ModelState"];
foreach (var errorProperty in errors.OfType<JProperty>())
{
    foreach (var error in errorProperty.Values())
    {
        Console.WriteLine("{0}={1}", errorProperty.Name, error);
    }
}