解析c#中的JSON错误响应

时间:2018-01-20 05:25:50

标签: c# json shopify

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

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

{
    "errors": {
        "inventory_policy": ["is not included in the list"]
    }
}

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

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

3 个答案:

答案 0 :(得分:2)

JObject类有一个这些属性的内部字典。可以枚举它的实例,并且可以访问每个子对象。以下是示例代码:

  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
  </ItemGroup>

JObject类在Newtonsoft.Json包中定义,要从您的项目中引用它,您需要在csproj文件中添加以下包引用(或者使用Nuget Package Manager自己执行):

{{1}}

希望这会有所帮助!

答案 1 :(得分:1)

试试这个

var JsonObj = JObject.Parse(json);

foreach(var keyvaluepair in JsonObj.Cast<KeyValuePair<string,JToken>>().ToList())
{
    //keyvaluepair.Key
    //keyvaluepair.Value
}

答案 2 :(得分:-1)

你可以将json想象成一个动态变量并访问对象中的属性

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