将项添加到json对象

时间:2013-06-18 15:03:55

标签: javascript jquery json

我在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对象? 任何帮助将不胜感激

2 个答案:

答案 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";