访问json中的数据却没有得到密钥
access data in json not getting the key
var data = [{
"error": false,
"date": "09-02-2016",
"day": "5",
"checkin": "20:29:11",
"checkout": null,
"break_timein": null,
"break_timeout": null,
"checkin_remarks": "test",
"checkout_remarks": null,
"break_time_remarks": null
}];
console.log(data[0].checkin)
console.log(data[0].break_timein)
console.log(data[0].break_timein.length > 0 || data[0].break_timein != null)
对于break_timein
,当我console.log它时,它返回null,但当我得到长度时,它会返回Cannot read property 'length' of null
为什么会这样?
我知道它只在没有属性
break_timein
但只有null
的情况下出现
你在这里得出了错误的结论。该错误与属性是否存在无关。
当一个属性不存在,并且你试图访问它上的属性时,你会得到以下错误:
var foo = {};
foo.bar.baz;
// Uncaught TypeError: Cannot read property 'baz' of undefined
这句话中的"undefined"不是指属性的存在,而是指值undefined
。在JavaScript中,当访问一个属性不存在时,访问它将返回值undefined
:
foo.bar
// undefined
还有创建undefined
的其他情况,例如,当您定义一个没有初始值的变量时:
var abc;
abc;
// undefined
知道我们可以测试当我们直接访问undefined
:上的属性时会发生什么
undefined.foo
// Uncaught TypeError: Cannot read property 'foo' of undefined
这引发了与上面相同的错误,因此与属性访问无关。
因此,现在我们已经确定undefined
不能在属性访问上下文中使用。
null
是另一个类似的值:
null.foo
// Uncaught TypeError: Cannot read property 'foo' of null
是什么使null
和undefined
与其他显示这种行为的基元值(字符串、数字、布尔值(不同?
null
和undefined
实际上是两种唯一数据类型的值:Null和Undefined。
的那些数据类型没有对象包装器。字符串、数字和布尔值可以以两种形式存在:作为基元值和作为对象值:
var primitive = "foo";
var object = new String("foo");
当您访问基元值(例如"foo".length
(上的属性时,JavaScript会自动将基元值转换为临时对象值,类似于new String("foo").length
。
但是,由于没有与Null and Undefined
等价的对象(从没有Null
或Undefined
函数的事实中可以明显看出(,因此无法执行此操作,因此会引发错误。
这里,null
没有任何属性,例如长度,这就是为什么它抛出一个错误,说"Cannot read property 'length' of null"
。你应该这样写声明:
console.log(data[0].break_timein != null || data[0].break_timein.length > 0);
- 加载两个具有相同父密钥名称的json文件
- D3动态json密钥名称
- 根据用户选择获取 JSON 密钥
- 从包含密钥路径的字符串中获取json值
- 如何在javascript中获取数组密钥对的json子值
- node.js JSON.parse reviver没有't报告重复的密钥
- 仅使用该值检索 JSON 密钥
- 当我不知道密钥的名称时,如何读取 JSON 对象
- 使用给定的URL和密钥将JSON对象提取到jQuery ajax中
- 动态创建 json 密钥
- 循环访问没有数组的 JSON 密钥对象
- 杰克逊 JSON 处理密钥名称 = ognl 名称
- 获取密钥 Json 并使用名称 var 进行搜索
- 是用 JSON 保留的 tid 密钥
- 访问 JSON 中的嵌套对象(密钥对/MYSQL 数组)
- 在模型同步时发送带有 json 的 API 密钥
- 如何在 json 密钥中访问 Json 密钥
- 基于 json 密钥值的特定车把模板
- JSON 数据加密/解密或密钥值对
- 使用正则表达式转换 JSON 密钥值