111,098
社区成员




{"error": null, "result": {"status": "success"}, "id": 1}
调试发现程序并没有进入这个判断分支if (Json["error"] == null)
Json["error"] == null
json.Value<string>("error") == null
var s = "{\"error\": null, \"result\": {\"status\": \"success\"}, \"id\": 1}";
var json = JObject.Parse(s);
if (json["error"].Equals(JValue.CreateNull())) Console.WriteLine("NULL"); //NULL
关键在于你要遵守人家的规则!json["error"] 是 JToken 类型的对象,可隐式转换为 JValue 类型对象,而 JValue 有 CreateNull() 方法用于构造一个空对象,毕竟是第三方工具库,并不完全兼容 C# 的传统写法
不能写作 Json["error"] == null
只能写作 json["error"].Equals(JValue.CreateNull())
那就肯定不对了啊。你json是一个 {{"error": null}},正常来说,应该是{"error": null}才对。我看了下,#5就是我要表述的意思
var s = "{\"error\": null, \"result\": {\"status\": \"success\"}, \"id\": 1}";
var json = JObject.Parse(s);
if (json["error"].Equals(JValue.CreateNull())) Console.WriteLine("NULL"); //NULL
[quote=引用 1 楼 guwei4037 的回复:]那你看下Json["error"]这个值是多少?
你先确定 Json是什么,在考虑 Json["error"]
Json["error"]你的DEBUG方式不对,你单看一下Json["error"],感觉你这写法不太对啊!还有Json的下一级好像没有"error"节点啊!他的下一级是{"error": null, "result": {"status": "success"}, "id": 1}这个啊!你可以试试Json[0]["error"]这个好不好用
那你看下Json["error"]这个值是多少?
你先确定 Json是什么,在考虑 Json["error"]