Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从此Json获取文本(使用Json.net JObject)_C#_Json_Json.net - Fatal编程技术网

C# 如何从此Json获取文本(使用Json.net JObject)

C# 如何从此Json获取文本(使用Json.net JObject),c#,json,json.net,C#,Json,Json.net,我有这个json { "Message": "The request is invalid.", "ModelState": { "UserExists": [ "userName already exists in db." ] } } 我可以尝试遍历所有模型状态错误(在本例中只有1个错误,但可能还有更多错误) 但是我想不出怎么把文字写出来 JObject o = JObject.Parse(response.Content);

我有这个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)
                        {

                        }

您得到的
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);
    }
}
var response=“{\”Message\“:\”请求无效。\”,\“ModelState\”:{\“UserExists\”:[\“用户名已存在于数据库中。\”],\“SomeOtherError\”:[\“另一个错误。\”,\“1中的两个”]};
var o=JObject.Parse(响应);
var错误=o[“模型状态”];
foreach(errors.OfType()中的var errorProperty)
{
foreach(errorProperty.Values()中的变量错误)
{
WriteLine(“{0}={1}”,errorProperty.Name,error);
}
}

您得到的
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);
    }
}
var response=“{\”Message\“:\”请求无效。\”,\“ModelState\”:{\“UserExists\”:[\“用户名已存在于数据库中。\”],\“SomeOtherError\”:[\“另一个错误。\”,\“1中的两个”]};
var o=JObject.Parse(响应);
var错误=o[“模型状态”];
foreach(errors.OfType()中的var errorProperty)
{
foreach(errorProperty.Values()中的变量错误)
{
WriteLine(“{0}={1}”,errorProperty.Name,error);
}
}