小编典典

JSON.NET JObject键比较不区分大小写

json

我正在使用Newtonsoft
Json.net解析JSON字符串。我将字符串转换为JObject。当通过键访问元素的值时,我要比较是不区分大小写的。在下面的代码中,我使用“
FROM”作为键。我希望它在行json [“ FROM”]。ToString()处返回字符串“ 1”。但是失败了。是否可以使下面的代码正常工作?

String ptString = "{from: 1, to: 3}";
var json = (JObject)JsonConvert.DeserializeObject(ptString);

String f = json["FROM"].ToString();

阅读 836

收藏
2020-07-27

共1个答案

小编典典

c#允许您将字典与不区分大小写的键一起使用,因此我使用的解决方法是将JObject转换为具有StringComparer.CurrentCultureIgnoreCaseset
的字典,如下所示:

JObject json = (JObject)JsonConvert.DeserializeObject(ptString);
Dictionary<string, object> d = new Dictionary<string, object>(json.ToObject<IDictionary<string, object>>(), StringComparer.CurrentCultureIgnoreCase);

String f = d["FROM"].ToString();
2020-07-27