一个
"null"在值
JObject实际上是一个
_非空
JValue_与
JValue.Type等于
JTokenType.Null。当此值实际出现在JSON中时,它表示null的JSON值。我相信它的存在是为了捕获以下两个JSON对象之间的差异:
"source2": { "z": null } "source2": { }在第一种情况下,该属性
"z"带有
nullJSON值。在第二种情况下,该属性
"z"不存在。Linq-to-
JSON表示第一种情况是null类型,
JValue而不是
JProperty.Value实际 为null 。
为防止空令牌渗透到您
JObject的值中,请在
JObject从某些POCO 创建时使用适当的序列化器设置:
var jobj = JObject.FromObject(new{ x = 1, y = "bla", z = (int?)null}, new JsonSerializer { NullValueHandling = NullValueHandling.Ignore } );(请注意,POCO本身本身不一定已经是
JObject。无类型方法,
JsonConvert.DeserializeObject(jsonString)或者
JsonConvert.DeserializeObject<dynamic>(jsonString)默认情况下,
JObject当根JSON容器
jsonString为JSON对象时,默认情况下将返回a
。)



