检查是否定义了JSON对象
Check if JSON object is defined
我有一个JSON对象
var values = {"220":{"287":19,"total":19},"":{"240":76,"total":76},"total":95};
并且我不能检查是否定义了CCD_ 1。
item是从selectbox值中获得的变量,基本上我正在尝试做if-else语句,我需要检查是否定义了values[item]['total']
,我有两个场景
item是220,或者另一个"中的数字(json对象是用php生成的,在这种情况下它有220和",因为它没有"颜色"值,只有大小,但通常它有正确的值(
在我的情况下,项目值是{}括号中的值,例如287和240
此代码:
if ( typeof values[item]['total'] === 'undefined' ) {
console.log('undefined');
}
抛出:Uncaught TypeError: Cannot read property 'total' of undefined.
您可以使用in
检查:
if (item in values && 'total' in values[item]) {
console.log('defined');
}
当item
的值与任何属性都不匹配时,就会导致该错误。它将返回null,然后您试图访问它的属性,但由于该项为null而无法访问。
你应该做的是检查两个部分是否未定义:
if ( typeof values[item] === 'undefined' || typeof values[item]['total'] === 'undefined') {
console.log('undefined');
}
下面是一个工作示例
使用hasOwnProperty()
怎么样
if ( typeof values[item]!== 'undefined' &&
values[item].hasOwnProperty('total')===false )
{
console.log('Total undefined');
}
注意:请确保您正在为项传递字符串。因此它将被编译为项["220"]而不是项[220]。在JavaScript中,对象索引器由字符串名称访问
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象