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# 在c中解析JSON错误响应#_C#_Json_Shopify - Fatal编程技术网

C# 在c中解析JSON错误响应#

C# 在c中解析JSON错误响应#,c#,json,shopify,C#,Json,Shopify,我正试图找到一种在C#中解析JSON错误消息的方法。 我可以收到如下响应: { "errors": { "title": ["can't be blank"] } } 或 或者,我可能会在响应中收到多个错误 我怎样才能在C#中解析这种动态响应?每个错误消息的密钥都不同。我可以将它反序列化为一个只有一个名为errors的字符串字典的对象吗 您可以将json序列化为动态变量并访问对象中的属性 dynamic dynJson = JsonConvert.DeserializeObje

我正试图找到一种在C#中解析JSON错误消息的方法。 我可以收到如下响应:

{
  "errors": {
    "title": ["can't be blank"]
  }
}

或者,我可能会在响应中收到多个错误


我怎样才能在C#中解析这种动态响应?每个错误消息的密钥都不同。我可以将它反序列化为一个只有一个名为errors的字符串字典的对象吗

您可以将json序列化为动态变量并访问对象中的属性

dynamic dynJson = JsonConvert.DeserializeObject(json);
foreach (var item in dynJson)
{
     // access dynamic property here
}
试试这个

var JsonObj = JObject.Parse(json);

foreach(var keyvaluepair in JsonObj.Cast<KeyValuePair<string,JToken>>().ToList())
{
    //keyvaluepair.Key
    //keyvaluepair.Value
}
var JsonObj=JObject.Parse(json); foreach(JsonObj.Cast().ToList()中的var keyvaluepair) { //钥匙对,钥匙 //键值对 }
JObject类具有这些属性的内部字典。可以枚举它的实例,并且可以访问每个子对象。下面是一个示例代码:

string input = "{  \"errors\": {    \"title\": [\"can't be blank\"]  }}";
JObject json = JObject.Parse(input);

foreach (var item in json)
{
    Console.WriteLine($"{item.Key} _ {item.Value}");
}
JObject类是在Newtonsoft.Json包中定义的,要从项目中引用它,您需要在csproj文件中添加以下包引用(或者自己使用Nuget package Manager来实现):



希望这会有帮助

是搜索NewtonSoft JSON字典。
string input = "{  \"errors\": {    \"title\": [\"can't be blank\"]  }}";
JObject json = JObject.Parse(input);

foreach (var item in json)
{
    Console.WriteLine($"{item.Key} _ {item.Value}");
}
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
  </ItemGroup>