C# 在c中解析JSON错误响应#
我正试图找到一种在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
{
"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>