繁体   English   中英

如何使用 javascript 对 JSON 数据进行分级?

[英]How to level of JSON data with javascript?

我有一个像这样的例子 JSON object

 [ { level: 1, first_name: 'Sammy', last_name: 'Snow' }, { level: 2, cloth: 'shirt', color: 'red' }, { level: 2, cloth: 'jeans', color: 'blue' }, { level: 1, first_name: 'Danny', last_name: 'Crow' }, { level: 2, cloth: 't-shirt', color: 'gray' }, { level: 2, cloth: 'hat', color: 'white' }, { level: 2, cloth: 'socks', color: 'yellow' } ]

现在,当我将它发送到数据库时,它看起来像

在此处输入图像描述

我想像这样用 javascript 改变它

 [{"level": 1, "first_name": "Sammy", "last_name": "Snow", "next_level": [{ "level": 2, "cloth": "shirt", "color": "red" }, { "level": 2, "cloth": "jeans", "color": "blue" }] }, {"level": 1, "first_name": "Danny", "last_name": "Crow", "next_level": [{ "level": 2, "cloth": "t-shirt", "color": "gray" }, { "level": 2, "cloth": "hat", "color": "white" }, { "level": 2, "cloth": "socks", "color": "yellow" }] }]

我想发送到数据库并以表格形式查看的结果在此处输入图像描述

现在我不知道如何做到这一点。 也许可以在数据库中使用 SQL 请求而不是使用 javascript 更改结构? 抱歉,我是 javascript 的新手。

使用 Map 保留 level1 数据,然后迭代 throw 数据以对其进行结构化

 dataq=[ { level: 1, first_name: 'Sammy', last_name: 'Snow' }, { level: 2, cloth: 'shirt', color: 'red' }, { level: 2, cloth: 'jeans', color: 'blue' }, { level: 1, first_name: 'Danny', last_name: 'Crow' }, { level: 2, cloth: 't-shirt', color: 'gray' }, { level: 2, cloth: 'hat', color: 'white' }, { level: 2, cloth: 'socks', color: 'yellow' } ] map = new Map() x=dataq.forEach(x=>{if (x.first_name) x.next_level=[], map.set(x.first_name,x)}) for(let i=0;i<dataq.length;i++){ if(dataq[i].hasOwnProperty("first_name")) { l= map.get(dataq[i].first_name);continue} else l.next_level.push(dataq[i]) } console.log([...map.values()])

暂无
暂无

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

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