有没有办法以Key / Value对的方式使用JSON对象处理数据结构? 如果是这样,有人可以详细说明如何从密钥
访问关联的值对象假设我有类似的东西
KEY1 | VALUE OBJECT1 - (NAME: "XXXXXX", VALUE:100.0)
KEY2 | VALUE OBJECT2 - (NAME: "YYYYYYY", VALUE:200.0)
KEY3 | VALUE OBJECT3 - (NAME: "ZZZZZZZ", VALUE:500.0)
答案 0 :(得分:20)
“JSON对象”实际上是矛盾的。 JSON是描述对象而不是实际对象的文本格式,因此数据可以是JSON形式,也可以反序列化为对象。
JSON就是这样的:
{"KEY1":{"NAME":"XXXXXX","VALUE":100},"KEY2":{"NAME":"YYYYYYY","VALUE":200},"KEY3":{"NAME":"ZZZZZZZ","VALUE":500}}
一旦您将JSON解析为Javascript对象(在下面的代码中称为data
),您就可以访问KEY2
的对象,并且它的属性如下:
var obj = data.KEY2;
alert(obj.NAME);
alert(obj.VALUE);
如果您将密钥作为字符串,则可以使用索引表示法:
var key = 'KEY3';
var obj = data[key];
答案 1 :(得分:10)
var object = {
key1 : {
name : 'xxxxxx',
value : '100.0'
},
key2 : {
name : 'yyyyyyy',
value : '200.0'
},
key3 : {
name : 'zzzzzz',
value : '500.0'
},
}
如果这就是你的对象看起来如何,你想循环每个名称和值,那么我会尝试做类似的事情。
$.each(object,function(key,innerjson){
/*
key would be key1,key2,key3
innerjson would be the name and value **
*/
//Alerts and logging of the variable.
console.log(innerjson); //should show you the value
alert(innerjson.name); //Should say xxxxxx,yyyyyy,zzzzzzz
});
答案 2 :(得分:7)
JSON (= J ava S crpt O bject N otation) ,是一种将Javascript对象转换为字符串的轻量级快速机制,反之亦然。
由于Javascripts对象由key/value
对组成,因此非常容易使用并以这种方式访问JSON。
所以,如果我们有一个对象:
var myObj = {
foo: 'bar',
base: 'ball',
deep: {
java: 'script'
}
};
我们可以通过window.JSON.stringify(myObj);
调用"{"foo":"bar","base":"ball","deep":{"java":"script"}}"
来将其转换为字符串。
反过来说,我们会拨打window.JSON.parse("a json string like the above");
。
JSON.parse()
成功返回javascript对象/数组。
alert(myObj.deep.java); // 'script'
并非所有浏览器都提供 window.JSON
。一些“旧”浏览器需要一个小javascript插件,它提供上述功能。请查看http://www.json.org以获取更多信息。
答案 3 :(得分:4)
我知道你要问的是什么,我认为这是你所寻找的最简单的答案,因为你可能不知道你被发送了多少个密钥对。
简单密钥对JSON结构
var data = {
'XXXXXX' : '100.0',
'YYYYYYY' : '200.0',
'ZZZZZZZ' : '500.0',
}
使用JavaScript代码访问密钥对
for (var key in data)
{ if (!data.hasOwnProperty(key))
{ continue; }
console.log(key + ' -> ' + data[key]);
};
控制台输出应如下所示
XXXXXX -> 100.0
YYYYYYY -> 200.0
ZZZZZZZ -> 500.0
这是JSFiddle以显示其工作原理。