检查给定数组索引是否存在 json 键

本文关键字:存在 json 是否 索引 数组 检查 | 更新日期: 2023-09-27 18:36:01

如果键不存在,此代码将引发异常。

例如,如果数组索引中某个位置的键存在,则代码是可以的,即使该值是null。但是,如果密钥不存在,代码将引发异常。选择标记括号中的代码是动态的(字符串变量)。

r["Value"] = json.SelectToken($.Objectives[x].state).ToString() ?? ""; 

检查给定数组索引是否存在 json 键

你不能在空值上调用 ToString()。

JToken value = json.SelectToken("$.Objectives[x].state");
r["Value"] = (value != null) ? value.ToString() : "";

如果 x 不存在,您可以使用 tenary 运算符返回默认值

r["Value"] = $.Objectives[x] ? 
    json.SelectToken($.Objectives[x].state).ToString() ?? " 
    : '';

r["Value"] = x >= $.Objectives.Length ? 
    json.SelectToken($.Objectives[x].state).ToString() ?? " 
    : '';

我不确定你为什么用双引号结束这一行。 也许是错别字? 但我没有修复它,该代码是您开始的。

在 javascript 中,如果给定变量有一个值,它将返回true以下内容:

if(r["Value"]){
   //this only runs if r["Value"] exists
}