数据是父子类型的N级,有没有更好的办法生成自己想要的json ?

jasonliangbiz 2017-09-20 04:52:18
数据:

id pid name
----------- ----------- --------------------------------------------------
16 15 n1
17 16 n2
18 17 n3
19 17 n4
31 17 n5
41 16 n6
42 18 n7

最后要生成

{
"name": "n1",
"id": "16",
"children": [
{
"id": "17",
"name": "n2",
"children": [
{
"id": "18",
"name": "n3",
"children": [
{
"id": "42",
"name": "n7"
}
]
},
{
"id": "19",
"name": "n4"
},
{
"id": "31",
"name": "n5"
}
]
},
{
"id": "41",
"name": "n6"
}
]
}

之前想使用Newtonsoft.Json来生成,但是技术有限,弄了半天搞不定!
只有使用递归来拼json字符窜吗?

有没有好的办法?说说看. 万分感激!

PS:能贴代码或者有例子最好了 :-)
...全文
261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasonliangbiz 2017-09-20
  • 打赏
  • 举报
回复
用了你的方法放在项目中,比拼字符串好太多了.最起码代码看起来好看多了 像这种N级的看来还是递归比较普遍啊.就是不知道效率是不是别人说的不高. 非常感谢.
正怒月神 版主 2017-09-20
  • 打赏
  • 举报
回复
引用 3 楼 jasonliangbiz 的回复:
装到model里再序列化比拼字条串好多啦! 方便贴下代码不?参考下. 谢谢!
文中第二个方法 这是之前我写菜单父子节点递归的一个例子。 只需要最后把Model序列化就可以了。 http://blog.csdn.net/hanjun0612/article/details/50563136
jasonliangbiz 2017-09-20
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
我也是递归,然后 用newtonsoft.json序列化成json 不过我的递归,是装载数据到一个model。 最后是model直接序列化成json。 其实递归拼接字符串也没关系。
装到model里再序列化比拼字条串好多啦! 方便贴下代码不?参考下. 谢谢!
正怒月神 版主 2017-09-20
  • 打赏
  • 举报
回复
我也是递归,然后 用newtonsoft.json序列化成json 不过我的递归,是装载数据到一个model。 最后是model直接序列化成json。 其实递归拼接字符串也没关系。
peng2739956 2017-09-20
  • 打赏
  • 举报
回复
都是这么玩的。 newtonsoft只能用来序列化

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧