我有一个JSON对象返回,格式如下:
"miscObject": {
"205": [
{
"h": "Foo",
"l": "Bar"
}
]
}
miscObject包含超过1500个条目,每个条目都以递增方式命名。
如果我将“205”存储在变量中而不必遍历miscObject中的所有对象,我怎样才能获得'miscObject.205.h'和'miscObject.205.l'的值?
答案 0 :(得分:5)
您似乎在谈论Javascript对象而不是JSON字符串。
访问Javascript对象的属性时, x[y]
和x.y
大多可以互换,区别在于y
在前者中可能是表达式。
利用这个来解决你的问题,如下:
var num = '205';
console.log(miscObject[num].l);
// ^^^^^
// \
// instead of `.num`, which wouldn't be the same as
// `num` is not the literal name of the property
答案 1 :(得分:1)
使用成员查找语法
var miscObject = $.parseJSON(theJsonString);
var name = '205';
miscObject[name].h;
答案 2 :(得分:0)
可以通过两种方式访问对象值 - 使用您提到的'dot'表示法,或使用[]
:
以下内容应该有效:
var result = miscObject["205"].h;
答案 3 :(得分:0)
var miscObject = JSON.parse(your-JSON-object);
var value = miscObject['205'].h
答案 4 :(得分:0)
您可以这样做以获取对象:
num = '205'
miscObject[num]