如何检查 JsonObject 是否具有空值(windows.data.json)
本文关键字:空值 data json windows JsonObject 何检查 检查 是否 | 更新日期: 2023-09-27 18:33:36
如何检查 json 对象中的任何键是否具有空值
JsonObject itemObject = itemValue.GetObject();
string id = itemObject["id"].GetString() == null ? "" : itemObject["id"].GetString();
this is my code but app crashes on it if null value for key "id"
IJsonValue idValue = itemObject.GetNamedValue("id");
if ( idValue.ValueType == JsonValueType.Null)
{
// is Null
}
else if (idValue.ValueType == JsonValueType.String)
{
string id = idValue.GetString();
}
如果这样做太多,请考虑添加扩展方法。
要执行相反的使用:
IJsonValue value = JsonValue.CreateNullValue();
在此处阅读有关空值的更多信息。
http://msdn.microsoft.com/en-us/library/ms173224.aspx
?? 运算符称为 null 合并运算符。如果操作数不为 null,则返回左侧操作数;否则,它将返回右侧操作数。
如果
itemObject["id"]
为空,则方法null.GetString()
不存在,您将得到指定的错误(空对象从不有任何方法/字段/属性)。
string id = itemObject["id"] == null ? (string)null : itemObject["id"].GetString(); // (string)null is an alternative to "", both are valid null representations for a string, but you should use whichever is your preference consistently to avoid errors further down the line
在断言 ID 不为 null 之前,上述内容避免调用 .GetString()
(查看此处以获取更深入的内容),如果您使用的是 C#6,您应该能够使用新的速记:
string id = itemObject["id"]?.GetString();
这是该问题的解决方案
字符串 id = itemObject["id"]。ValueType == JsonValueType.Null ?" : itemObject["id"]。GetString();