json path 转json

人鱼传说 2017-05-03 08:52:20

json path转成json对象,用C#加Newtonsoft.Json实现,搞了一天了搞不出来,希望高手指点一下
写一个方法, 如下
/// <param name="Paths">节点路径与值</param>
/// <param name="restoreJson">还原后的json对象</param>
public static void PathsToJson(Dictionary<string, string> Paths, ref JObject restoreJson)

//以下是Paths的key,val随机就行了
school
efg
Persons[0].name
Persons[0].courses.<<stage>>
Persons[0].courses.<<list>>[0].language
Persons[0].courses.<<list>>[0].vel[0].<<key>>
Persons[0].courses.<<list>>[0].vel[0].<<formula>>
Persons[0].courses.<<list>>[0].pos
Persons[0].courses.<<list>>[1].language
Persons[0].courses.<<list>>[1].vel[0].<<key>>
Persons[0].courses.<<list>>[1].vel[0].<<formula>>
Persons[0].courses.<<list>>[1].pos
Persons[0].courses.<<list>>[2].language
Persons[0].courses.<<list>>[2].vel[0].<<key>>
Persons[0].courses.<<list>>[2].vel[0].<<formula>>
Persons[0].courses.<<list>>[2].pos
Persons[0].courses.<<list>>[3].language
Persons[0].courses.<<list>>[3].vel[0].<<key>>
Persons[0].courses.<<list>>[3].vel[0].<<formula>>
Persons[0].courses.<<list>>[3].pos
Persons[0].courses.<<list>>[4].language
Persons[0].courses.<<list>>[4].vel[0].<<key>>
Persons[0].courses.<<list>>[4].vel[0].<<formula>>
Persons[0].courses.<<list>>[4].pos
Persons[0].courses.<<list>>[5].language
Persons[0].courses.<<list>>[5].vel[0].<<key>>
Persons[0].courses.<<list>>[5].vel[0].<<formula>>


...全文
407 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
人鱼传说 2017-05-05
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
其实直接处理 json 串是最简单的
感谢,只能这样了
xuzuning 2017-05-04
  • 打赏
  • 举报
回复
其实直接处理 json 串是最简单的
人鱼传说 2017-05-04
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
直接用 Newtonsoft.Json 解码 json,遍历结果对象树移去空值节点,重新编码就可以了 没必要用 jsonpath
由于暂时不能用jsonpath反向生成 json,暂时只能删除空值节点的方式来实现,删除其实也有一些问题,比如json结构是未知的,空值节点也是未知的,要遍历,但又不能从上往下删,但从下往上删除,有时会出现操作一个已删除的节点的问题
xuzuning 2017-05-04
  • 打赏
  • 举报
回复
直接用 Newtonsoft.Json 解码 json,遍历结果对象树移去空值节点,重新编码就可以了 没必要用 jsonpath
人鱼传说 2017-05-04
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
json path 是什么? 他不就是可以像 xpath 检索 xml 那样检索 json 的工具吗?他并没有改变原始的 json 不明白你说的转json 是什么意思
我的path是通过json对象得到的,原json对象有许多节点值是空字符(已不需要),所以要通过新的path来生成json
xuzuning 2017-05-04
  • 打赏
  • 举报
回复
json path 是什么? 他不就是可以像 xpath 检索 xml 那样检索 json 的工具吗?他并没有改变原始的 json 不明白你说的转json 是什么意思
人鱼传说 2017-05-04
  • 打赏
  • 举报
回复
没人会还是问题太简单

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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