繁体   English   中英

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

[英]Creating a new array [] in json and pushing data using 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"}
        ]
    }
}

感谢阅读,我在 Discord 中尝试过,但仍然无法弄清楚

像这样简单的事情应该可以解决问题:

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

myJSON是您要附加到的 object。

请参见下面的示例:

 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 Object 相同。

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

function createBlock = (longData) => [{"long":longData}];
jsonObj.objs[myBlock] = createBlock(longData);
let x ={
    "objs": {
        "block": [
            {"long": "value1"}
        ],
        "block1": [
            {"long": "value2"}
        ],
        "nameofblock": [
            {"long": "thisisthevalueoflonginjson"}
        ],
        "name_of_block": [
            {"long": "data_inside_the_block"}
        ]
    }
}


x.objs.newProperty= 'New value'

console.log(x) --->
{
  objs: {
    block: [ [Object] ],
    block1: [ [Object] ],
    nameofblock: [ [Object] ],
    name_of_block: [ [Object] ],
    newProperty: 'new Value'
  }
}
``

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM