提问者:小点点

在json中创建新数组[]并使用js推送数据


我需要一些帮助,所以我有一个这种格式的json

{
    "objs": {
        "block": [
            {"long": "value1"}
        ],
        "block1": [
            {"long": "value2"}
        ],
        "nameofblock": [
            {"long": "thisisthevalueoflonginjson"}
        ]
    }
}

现在我需要使用js添加一个新数组,我不允许更改JSON的结构,所以现在,在我的js中,我有如下内容

let myBlock = "name_of_block";
let longData = "data_inside_the_block";

现在,使用这些变量,需要在现有的JS文件中使用JS中的变量创建一个新块

因此,一旦添加了这些内容,JSON必须如下所示

{
    "objs": {
        "block": [
            {"long": "value1"}
        ],
        "block1": [
            {"long": "value2"}
        ],
        "nameofblock": [
            {"long": "thisisthevalueoflonginjson"}
        ],
        "name_of_block": [
            {"long": "data_inside_the_block"}
        ]
    }
}

感谢阅读!我试过不和,但还是想不通


共2个答案

匿名用户

像这样简单的东西就能起到作用:

myJSON.objs[myBlock] = [{"long": longData}];

其中myjson是要将其附加到的对象。

请参阅下面的示例:

null

const myJSON = {
    "objs": {
        "block": [
            {"long": "value1"}
        ],
        "block1": [
            {"long": "value2"}
        ],
        "nameofblock": [
            {"long": "thisisthevalueoflonginjson"}
        ]
    }
};

let myBlock = "name_of_block";
let longData = "data_inside_the_block";

myJSON.objs[myBlock] = [{"long": longData}];

console.log(myJSON);

匿名用户

JSON结构与JS对象相同。

所以你可以像下面这样做。

function createBlock = (longData) => [{"long":longData}];
jsonObj.objs[myBlock] = createBlock(longData);