繁体   English   中英

Javascript:将JSON数据存储在数组中

[英]Javascript : Store JSON data in array

我有这样的JSON。

[{
    "address": "A-D-1",
    "batch": [{
        "batch_number": "B-123",
        "cost": [{
            "cost": "C1"
        }]
    }]
},
{
    "address": "A-85-1",
    "batch": [{
        "batch_number": "B-6562",
        "cost": [{
            "cost": "C16464"
        }]
    }]
},
{
    "address": "A-522-1",
    "batch": [{
        "batch_number": "B-4511",
        "cost": [{
            "cost": "C8745"
        }]
    }]
}]

我想将JSON数据存储到数组。

 let data = JSON.parse('[{"address":"AD-1","batch":[{"batch_number":"B-123","cost":[{"cost":"C1"}]}]},{"address":"A-85-1","batch":[{"batch_number":"B-6562","cost":[{"cost":"C16464"}]}]},{"address":"A-522-1","batch":[{"batch_number":"B-4511","cost":[{"cost":"C8745"}]}]}]'); for (let i = 0; i < data.length; i++) { if (data[i].batch !== undefined && data[i].batch !== null && data[i].batch.length !== undefined && data[i].batch.length > 0) { let batchLength = data[i].batch.length let newObject = {} let newArray = [] for (let j = 0; j < batchLength; j++) { if (data[i].batch !== undefined && data[i].batch[j].cost !== null && data[i].batch[j].cost.length !== undefined && data[i].batch[j].cost.length > 0) { let costLength = data[i].batch[j].cost.length for (let k = 0; k < costLength; k++) { newObject.location = data[i].address newObject.batch.number = data[i].batch[j].batch_number ? data[i].batch[j].batch_number : '' newObject.cogs = data[i].batch[j].cost[k].cost ? data[i].batch[j].cost[k].cost : '' newArray.push(newObject) } } } } } 

我已经将JSON存储在data变量中。

我试过下面的代码。 但是我总是得到最后一个索引作为重复。

预期产量:

[
   {
      "address":"A-D-1",
      "batch":{
         "batch_number":"B-123"
      },
      "cost":"C1"
   },
   {
      "address":"A-85-1",
      "batch":{
         "batch_number":"B-6562"
      },
      "cost":"C16464"
   },
   {
      "address":"A-522-1",
      "batch":{
         "batch_number":"B-4511"
      },
      "cost":"C8745"
   }
]

任何帮助都会很棒。

谢谢。

你的意思是这样的吗?

 const someArray = [{ "address": "AD-1", "batch": [{ "batch_number": "B-123", "cost": [{ "cost": "C1" }] }] }, { "address": "A-85-1", "batch": [{ "batch_number": "B-6562", "cost": [{ "cost": "C16464" }] }] }, { "address": "A-522-1", "batch": [{ "batch_number": "B-4511", "cost": [{ "cost": "C8745" }] }] }] console.log(someArray.map(item => { return { address:item.address, batch_number: item.batch && item.batch[0].batch_number, cost: item.batch && item.batch[0].cost[0].cost } })) 

您可以使用以下方法以数组格式检索相同的内容。

const data = JSON.parse(someArray);
console.log (data[0].address);

暂无
暂无

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

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