我有一个从 API 生成的 JSON 字符串。
[{"categories":{"category":{"id":"1","Name":"furit"}}},{"categories":{"category":{"id":"2","Name":"veg"}}},{"products":{"product":{"id":"1","Name":"fruit"}}},{"products":{"product":{"id":"2","Name":"pears"}}}]
如何将所有子值推送给其父值,使其看起来像这样。
[{"categories":{"category":[{"id":"1","name":"fruit"},{"id":"2","name":"veg"}]}},{"products":{"products":[{"id":"1","name":"apple"},{"id":"2","name":"pears"}]}}]
谢谢。
更新的数据结构
最佳答案
您可以创建新对象并使用映射来更改数据结构并将该数据分配给新对象。
var data = [{"categories":{"category":{"id":"1","Name":"furit"}}},{"categories":{"category":{"id":"2","Name":"veg"}}}]
var r = {
categories: {
category: data.map(o => o.categories.category)
}
}
console.log(r)
更新对于新的数据结构,您可以使用forEach()
循环并添加到对象。
var data = [{"categories":{"category":{"id":"1","Name":"furit"}}},{"categories":{"category":{"id":"2","Name":"veg"}}},{"products":{"product":{"id":"1","Name":"fruit"}}},{"products":{"product":{"id":"2","Name":"pears"}}}]
var r = {categories: {category: []}, products: {product: []}}
data.forEach(function(e) {
if(e.categories) r.categories.category.push(e.categories.category)
if(e.products) r.products.product.push(e.products.product)
})
console.log(r)
关于javascript - 将 JSON 子字符串推送/分配给相应的父字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46326031/