1

有没有办法使用变量创建 JSON 对象 ID?

var json_result = [];
var id = 20;
json_result.push({id: {parentId: parentId, position: position}});

这会生成一个 json 对象,其值为 'id' 作为 id。我想实现将值“20”作为关键。

编辑:包括解决方案:

var json_result = {};
var id = 20;
json_result[id] = {parentId: parentId, position: position};

现在您可以像这样访问 parentId 和位置:

json_result[20].position
json_result[20].parentId
4

4 回答 4

4

您不能编写这样的对象文字(顺便说一下,它不是“JSON 对象”;只是一个普通的 Javascript 对象),但您可以这样做:

var o = {};
o[id] = {parentId: parentId, position: position};
json_result.push(o);
于 2012-07-30T14:55:36.297 回答
1
var json_result = [];
var id = 20;
var obj = {};
obj[id] = "something";
json_result.push(obj);
于 2012-07-30T14:56:46.233 回答
0

这是 JSON 规范说键应该是字符串的原因之一。你的 JSON 应该看起来像这样:

{
  "20": {
    "parentId": ..., 
    "position": ...}
}

...或类似的。查看http://json.org/example.html

于 2012-07-30T14:56:56.030 回答
0

是的,你可以这样做:

var obj = {};
obj[id] = {parentId: parentId, position: position};
json_result.push(obj);
于 2012-07-30T14:57:25.483 回答