跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于带层级的列表转 json 对象的问题
未分類
27 3 月 2021

关于带层级的列表转 json 对象的问题

关于带层级的列表转 json 对象的问题

資深大佬 : anankun 0

原始数据

数据库里有这样的一些数据

_id p_id parm_key parm_value parm_type
0 -1 template object
10 0 name template-name string
20 0 inputs object
201 20 parameters [object]
2011 201 name this-is-name-1 string
2012 201 value this-is-value-1 string
2013 201 name this-is-name-2 string
2014 201 value this-is-value-2 string

其中:

  • id 和 p_id 是表示层级关系的
  • parm_key 对应的是某个对象的属性名称
  • parm_value 是 parm_type 为 string 时的属性值

需求

要根据上述的数据结构,生成以下格式的 json 对象或者 json 字符串:

{     "template": {         "name": "template-name",         "inputs": {             "parameters": [                 {                     "name": "this-is-name-1",                     "value": "this-is-value-1"                 },                 {                     "name": "this-is-name-2",                     "value": "this-is-value-2"                 }             ]         }     } } 

用什么样的方法能够做到这种转换呢?

大佬有話說 (5)

  • 資深大佬 : 66beta

    递归,遍历树

  • 主 資深大佬 : anankun

    递归是可以,想一想实现起来有点忒麻烦

  • 資深大佬 : 0x666666

    递归

  • 資深大佬 : no1xsyzy

    如果 (parm_key, parm_type) 对的种类固定且不多的话可以用 GraphQL,只要写出相当于 (parm_key, parm_type) 那么多个 key 就行了。
    不然你还是老老实实游走树吧。

  • 資深大佬 : Xbluer

    Entity 中多加属性 parent 和 childList.

    List<Entity> 转换成一个 Map<_id, Entity>。遍历 list,使用 map 把 entity 中的 parent 赋值,并把当前 entity 添加岛 parent.childList 中。如果 map 中查询结果是 null,那就是树的 root 。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具