json.net has key method?

本文关键字:method key has net json | 更新日期: 2023-09-27 18:06:44

如果我的响应有键"error",我需要处理错误并显示警告框。

是否有"haskey"方法存在于json.net?如:

var x= JObject.Parse(string_my);
if(x.HasKey["error_msg"])
    MessageBox.Show("Error!")

json.net has key method?

只用x["error_msg"]。如果属性不存在,则返回null

JObject实现了IDictionary<string, JToken>,因此您可以使用:

IDictionary<string, JToken> dictionary = x;
if (dictionary.ContainsKey("error_msg"))

…或者你可以使用TryGetValue。它使用显式接口实现这两种方法,因此如果不首先转换为IDictionary<string, JToken>,则不能使用它们。

JObject.ContainsKey(string propertyName)已在11.0.1版本中作为公共方法

文档- https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_ContainsKey.htm

这样做是有用的,如果key不存在,它提交Null到db。使用? ?和DBNull帮助解决这个问题

eachObject is of type JToken
DataRow dr = localTable.NewRow();                   
dr["Campaign_ID"] = (object)eachObject["id"] ?? DBNull.Value;
dr["Campaign_Name"] = (object)eachObject["name"] ?? DBNull.Value;
dr["Campaign_Subject"] = (object)eachObject["subject"] ?? DBNull.Value;