首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查给定数组索引是否存在json键?

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

Stack Overflow用户
提问于 2016-02-24 20:23:06
回答 3查看 1.3K关注 0票数 0

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

例如,如果键存在于数组索引中的位置,那么即使值是null,代码也是可以的。但是,如果密钥不存在,则代码会抛出异常。select令牌括号中的代码是动态的(一个字符串变量)。

代码语言:javascript
运行
复制
r["Value"] = json.SelectToken($.Objectives[x].state).ToString() ?? ""; 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-24 21:39:20

不能对空值调用ToString()。

代码语言:javascript
运行
复制
JToken value = json.SelectToken("$.Objectives[x].state");
r["Value"] = (value != null) ? value.ToString() : "";
票数 0
EN

Stack Overflow用户

发布于 2016-02-24 20:48:41

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

代码语言:javascript
运行
复制
r["Value"] = $.Objectives[x] ? 
    json.SelectToken($.Objectives[x].state).ToString() ?? " 
    : '';

代码语言:javascript
运行
复制
r["Value"] = x >= $.Objectives.Length ? 
    json.SelectToken($.Objectives[x].state).ToString() ?? " 
    : '';

我不知道你为什么要用双引号结束这句话。也许是打错字?但我没修好,那是你刚开始的代码。

票数 0
EN

Stack Overflow用户

发布于 2016-02-24 21:44:24

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

代码语言:javascript
运行
复制
if(r["Value"]){
   //this only runs if r["Value"] exists
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35612322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档