如何检查 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"

如何检查 JsonObject 是否具有空值(windows.data.json)

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();