Json.net 有密钥方法吗?

如果我的回应有关键字“错误”,我需要处理错误,并显示警告框。

Json.net 中是否存在“ haskey”方法? 比如:

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

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

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

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

只需使用 x["error_msg"]。如果该属性不存在,它返回 null

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;