我目前正在尝试精确解析JSON响应(使用POSTMAN)。
JSON响应具有以下结构(我使用...来跳过不相关的信息):
*
{
"href": ...,
"offset": ...,
"limit": ...,
"first": ...,
"last": ...,
"entries": [
{
"href": ...,
"id": ...,
"name": "MY_FIRST_ITEM_NAME",
"tags": [
...,
...
],
"objectClass": [
...
],
"attributes": {
...,
...,
...,
"device.type": "MY_ITEM_TYPE,
...
},
...
},
{
"href": ...,
"id": ...,
"name": "MY_SECOND_ITEM_NAME",
"tags": [
...,
...
],
"objectClass": [
...
],
"attributes": {
...,
...,
...,
"device.type": "MY_ITEM_TYPE,
...
},
...
},
...
]
}*
我想测试几个已知值: tests [“test first item”] = responseBody.has(“MY_FIRST_ITEM_NAME”) 这有效,但我也想检查相关的设备类型 如果我使用responseBody.has(“MY_ITEM_TYPE”)我无法弄清楚它与哪个项目相关,所以我尝试进行更精确的检查: *
tests["test entries 0"] = body.entries[0].name === "MY_FIRST_ITEM_NAME"*;
this works but when it comes to test the device type:
tests["test entries 0"] = body.entries[0].attributes.device.type
最终出现错误“TypeError:无法读取属性'类型'未定义”
使用控制台我可以看到属性(执行console.log(body.entries [0] .attributes);)但是不可能更深入一步。这是邮递员的限制吗?还有另一种方法来准确地获取此设备。类型信息?
感谢您的帮助
亚历山大
答案 0 :(得分:0)
Oups!抱歉编辑,我对此很新。这是这个问题的答案, 可以通过以下方式访问device.type属性: body.entries [0] .attributes [ 'device.type']
但是有一些限制: - 我不能使用.attributes [2],2是元素的索引,如果'attributes'可以看作是一个表。 - 语法是特殊的,如果我们使用双引号而不是单引号,它就不起作用 - 我仍然不知道为什么会在这个阶段发生......如果有人知道,我会很乐意向他朗读
干杯
亚历山大