根据父项和项 ID 重建或重新生成现有 JSON
Reconstruct or Rebuild existing JSON according to parent and item id
我从表值生成JSON数组,并在表中存储Id,Parent_id和数据以及其他一些值。如果没有任何父级,Parent_id将被NULL
,如果是,那么它将引用父 ID。
[{"state":"open","data":"Signature","attr":
{"id":0,"item_id":2,"parent_id":0},"children":[{"data":"or replace","attr":
{"id":1,"item_id":3,"parent_id":2}}]},{"state":"open","data":"Parameter","attr":
{"id":0,"item_id":4,"parent_id":0},"children":[{"data":"in parameter","attr":
{"id":3,"item_id":5,"parent_id":4}},{"data":"in out parameter","attr":
{"id":4,"item_id":6,"parent_id":4}}]},{"state":"open","data":"Mandatory Block","attr":
{"id":0,"item_id":7,"parent_id":0},"children":[{"data":"validate Exit condition for loop","attr":{"id":8,"item_id":8,"parent_id":7}},{"data":"validate exception","attr":
{"id":7,"item_id":9,"parent_id":7}}]},{"state":"open","data":"parent","attr":
{"id":0,"item_id":10,"parent_id":7},"children":[{"data":"parent_CHILD","attr":
{"id":2,"item_id":11,"parent_id":10}},{"data":"parent_CHILD1","attr":
{"id":5,"item_id":12,"parent_id":10}}]}]
从上面的 JSON 中,您可以看到parent_id=0
表示它没有父级。现在,我想根据parent_id和Item_id重建它,这意味着如果parent_id=0
则根据item_id对其进行排序
帮我弄清楚。
更新
我尝试跟随,但无法获得期望的结果。
<script src='js/linq.js'></script>
<script src='js/jquery.js'></script>
<script>
var dataArray = $.parseJSON([{"state":"open","data":"Signature","attr":
{"id":0,"item_id":2,"parent_id":0},"children":[{"data":"or replace","attr":
{"id":1,"item_id":3,"parent_id":2}}]},{"state":"open","data":"Parameter","attr":
{"id":0,"item_id":4,"parent_id":0},"children":[{"data":"in parameter","attr":
{"id":3,"item_id":5,"parent_id":4}},{"data":"in out parameter","attr":
{"id":4,"item_id":6,"parent_id":4}}]},{"state":"open","data":"Mandatory Block","attr":
{"id":0,"item_id":7,"parent_id":0},"children":[{"data":"validate Exit condition for loop","attr":{"id":8,"item_id":8,"parent_id":7}},{"data":"validate exception","attr":
{"id":7,"item_id":9,"parent_id":7}}]},{"state":"open","data":"parent","attr":
{"id":0,"item_id":10,"parent_id":7},"children":[{"data":"parent_CHILD","attr":
{"id":2,"item_id":11,"parent_id":10}},{"data":"parent_CHILD1","attr":
{"id":5,"item_id":12,"parent_id":10}}]}]);
var sorted = Enumerable.From(dataArray)
.OrderBy(function(x) {
return x.parent_id;
})
.ThenBy(function(x) {
return x.item_id;
})
.ToArray();
console.log(sorted);
console.log(dataArray);
</script>
看看 linq.js。
var dataArray = $.parseJSON(dataInYourQuestion);
var sorted = Enumerable.From(dataArray)
.OrderBy(function(x) {
return x.parent_id;
})
.ThenBy(function(x) {
return x.item_id;
})
.ToArray();
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- Json数据包含日期和时间格式
- AngularJS-在JSON选择器中使用变量名
- JSON.parse没有'不能使用Javascript