1

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

4

2 回答 2

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

于 2013-06-18T15:11:21.147 回答
1

你需要:

var newShape="shape2";
JSONObject[newShape].id = "blar"; 
于 2013-06-18T15:06:46.763 回答