我在Stackoverflow中看到很多问题,但是我没有找到对我的查询的确切响应。
我需要在json对象中添加一个元素:
var JSONObject = {
"shape0": {
"id": "id0",
"x1": 0,
"x2": 0,
"y1": 0,
"y2": 0
},
"shape1": {
"id": "id1",
"x1": 2,
"x2": 2,
"y1": 2,
"y2": 2
}
};
我使用了这种语法,但徒劳无功:
var newShape = "shape2";
JSONObject.newShape.id = "id2";
注意:首先,是一个json对象? 任何帮助将不胜感激
答案 0 :(得分:4)
假设您要构建与其余结构类似的结构:
JSONObject.shape2 = {
id: 'id2',
"x1": 4,
"x2": 4,
"y1": 4,
"y2": 8
};
或者:
var shapeName = 'shape2';
JSONObject[shapeName] = {
...
};
顺便说一句,这些是不是 JSON对象;它们只是JavaScript中的对象。
<强>更新强>
以下不起作用:
var newShape = "shape2";
JSONObject.newShape.id = "id2";
首先,符号是错误的;你需要使用[newShape]
。但这不是主要原因;它不起作用,因为你不能取消引用一个尚不存在的对象。
JSONObject[newShape]
这将是未定义的,所以:
JSONObject[newShape].id
会导致错误TypeError: Cannot set property 'id' of undefined
答案 1 :(得分:1)
你需要:
var newShape="shape2";
JSONObject[newShape].id = "blar";