json - 根据变量创建json对象ID
有没有办法用变量创建JSON对象ID?json - 根据变量创建json对象ID
var json_result = [];
var id = 20;
json_result.push({id: {parentId: parentId, position: position}});
这样会产生一个值为'id'的json对象作为id。我想达到以'20'为关键。
编辑:包括解决方案:
var json_result = {};
var id = 20;
json_result[id] = {parentId: parentId, position: position};
现在您可以访问的parentId和位置是这样的:
json_result[20].position
json_result[20].parentId
你不能写这样的对象字面(它不是一个“JSON对象”由方式;只是一个简单的Javascript对象),但你可以这样做:
var o = {};
o[id] = {parentId: parentId, position: position};
json_result.push(o);
谢谢。这工作。但我想我应该可以像这样访问该值:console.log(json_result [20]);但它不起作用。任何想法我必须改变?基本上我想访问ID 20的parentid和位置,而不需要遍历整个数组。 – 2012-07-30 15:18:59
@TomTom:当你将'o'推入'json_result'时,你不会给它一个等于'id'的键。如果你想这样做,只需使用'o'作为你的'json_result',并删除所有对原始'json_result'的引用(这是一个数组;你根本不需要这个注释)。 – Jon 2012-07-30 15:24:01
谢谢,现在我明白了。在我的问题中包含解决方案。 – 2012-07-30 15:33:02
var json_result = [];
var id = 20;
var obj = {};
obj[id] = "something";
json_result.push(obj);
这是JSON规范说键应该是字符串的原因之一。您的JSON应该看起来像这样:
{
"20": {
"parentId": ...,
"position": ...}
}
...或类似的。退房http://json.org/example.html
他试图弄清楚如何让'20'成为关键。另外,OP真的意味着* JavaScript对象*,而不是JSON对象。 – 2012-07-30 14:58:17
啊,现在明白了,谢谢 – 2012-07-30 15:00:44
是的,你可以做这样的:
var obj = {};
obj[id] = {parentId: parentId, position: position};
json_result.push(obj);
这是一个* JavaScript对象*,而不是一个JSON对象。 – 2012-07-30 14:56:37