如果我的回应有关键字“错误”,我需要处理错误,并显示警告框。
Json.net 中是否存在“ haskey”方法? 比如:
var x= JObject.Parse(string_my); if(x.HasKey["error_msg"]) MessageBox.Show("Error!")
JObject实现了 IDictionary<string, JToken>,因此您可以使用:
JObject
IDictionary<string, JToken>
IDictionary<string, JToken> dictionary = x; if (dictionary.ContainsKey("error_msg"))
或者你可以用 TryGetValue。它使用显式接口实现来实现这两个方法,所以如果不首先转换为 IDictionary<string, JToken>,就不能使用它们。
TryGetValue
只需使用 x["error_msg"]。如果该属性不存在,它返回 null。
x["error_msg"]
null
JObject.ContainsKey(string propertyName)已经在11.0.1版中作为公共方法发布
JObject.ContainsKey(string propertyName)
文件 -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;