我正试图找出一种在C#中解析JSON错误消息的方法。 我可以收到如下响应:
{
"errors": {
"title": ["can't be blank"]
}
}
或
{
"errors": {
"inventory_policy": ["is not included in the list"]
}
}
或者我可能会在响应中收到多个错误。
我如何能够在C#中解析这种动态响应?每个错误消息的密钥都不同。我可以将它反序列化为一个只有字符串字典称为错误的对象吗?
答案 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
}