5

JSONを動的に作成しようとしていますが、次のようなことを行うと次のようになります。

var jsonVar = {
    "section": {}
}

var elementsStoragePrefix = "_app_", 
    elementName = elementsStoragePrefix + "some_name";

$.extend(jsonVar .section, { elementName: "<option>This is a text</option>"});

キーを_app_some_nameではなくelementNameとして取得しました

jsonVar.section =>
    Object
        elementName: "<option>This is a text</option>"
        __proto__: Object
4

2 に答える 2

9

オブジェクトリテラルを作成するときは、プロパティ名を引用する必要がないため、例でelementNameは文字通りに解釈されます。ありがたいことに、角括弧構文を使用できます(またはどのように綴っても):

var extendObject = {};
extendObject[elementName] = '<option>Foobar</option>';
$.extend(jsonVal.section, extendObject);
//or, to use brackets all the way:
$.extend(jsonVal['section'], extendObject);

それはあなたのために物事を修正する必要があります

于 2013-02-03T00:20:17.330 に答える
4
jsonVar.section[elementName] = "<option>This is a text</option>";
于 2013-02-03T00:19:04.163 に答える