簡體   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