![](/img/trans.png)
[英]get JSON key value pair within json object array in javascript
[英]Access JSON object to get Resource Bundle key/value pair
我知道如何从JSON对象访问键值对,但是在我的情况下,资源束键被映射到值。
例如
var json = {"label.name.first":"foo","label.name.second":"bar"};
在这里json.label.name.first不会给我“ foo”。
有人可以帮我弄这个吗?
由于键名中使用句点字符( .
),因此需要使用[]
表示法来访问其值。
console.log( json['label.name.first'] );
此外,您有一个JavaScript对象,而不是JSON。
JavaScript对象或JSON之间的区别在于JSON始终是字符串。 其次,JavaScript对象的键名不需要相同的引用标准。
如果仅考虑下面的字符串,则可以将其视为JSON(这就是为什么如果将其粘贴到JSON解析器中,它会告诉您它是有效的JSON):
{"label.name.first":"foo","label.name.second":"bar"}
但是,如果直接将其分配给JavaScript变量,则将具有JavaScript对象文字而不是JSON。 这是因为当JSON不包含在字符串中时,它也是有效的JavaScript对象/数组文字:
var obj = {"label.name.first":"foo","label.name.second":"bar"};
如果将其用作字符串,则为JSON:
var json = '{"label.name.first":"foo","label.name.second":"bar"}';
// json is a string, so it's JSON
var obj = JSON.parse(json); // parse the JSON into an object
这种混淆很常见,因为JSON格式与JavaScript对象和数组文字的格式非常相似。
做这个:
json["label.name.first"]
但是,我认为您误会了.
符号。
顺便说一句,您的json不是JSON,它是一个javascript对象,而不是其符号。
是json["label.name.first"]
会让您"foo"
。 由于您的媒体资源名称包含不能在变量名称中使用的字符。
如果希望使用语法json.label.name.first
访问这些属性,那么您的JSON必须为:
var json = {
"label":{
"name":{
"first":"foo",
"second":"bar"
}
}
}
这不是创建对象的正确方法,您应该创建一个这样的对象。
var json={"label":{"name":{"first":"foo","second":"bar"}}};
它也可以作为json字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.