求大大指导这种类型应该用什么数据结构存储和转换?

xiaoYmark 2017-01-24 04:07:50
JSON格式如下:

{
"fk":{
"ordermark":{
"getmarklog":{

},
"list":{

}
}
},
"db":{
"menu":{
"menu":{
"managerGroup":{

}
}
},
"sell":{
"info":{
"export":{

},
"import":{

}
}
}
}
}

节点下可能会有子节点,子节点下面又可能有子节点(层级不固定),请教一下:
如何解析这种数据,应该用什么数据结构存储? 反之又如何生成这样类型的数据呢?
...全文
204 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sam_Deep_Thinking 2017-01-25
  • 打赏
  • 举报
回复
您好,对于这种需求的话,就不要用JAVA的对象去接收数据了,只能用原生对象。 假设你用的是阿里巴巴的fastjson,按照你上面说到的报文,那么你可以这样来接收数据和获取数据:

JSONObject parameters = JSON.parseObject("{\"fk\":{\"ordermark\":{\"getmarklog\":{},\"list\":{}}},\"db\":{\"menu\":{\"menu\":{\"managerGroup\":{}}},\"sell\":{\"info\":{\"export\":{},\"import\":{}}}}}");
parameters 是JSONObject 类型的,底层是一个Map,如果你想获取db属性中的menu属性的值,可以如下获取:

JSONObject menuObj = parameters.getJSONObject("db").getJSONObject("menu");
万一JSON格式有变化,那么这个Map其实通吃的,你只需要调整内部逻辑。 OK,那么我有个小建议,接口层面的,接口参数能确定的最好确定,万一实在没法确定,那么也可以使用String 参数来接收请求:

String  getResult(String json){
  return null;
}
因为对方的参数是动态的,也只能用一个Stirng类型的参数来接收变化的参数了。
李德胜1995 2017-01-24
  • 打赏
  • 举报
回复
引用 2 楼 g30225579 的回复:
也不是mongodb哦,只是前端或者其他接口传过来的普通json数据 php的话直接有现成的函数json_decode就能得到数组,但是java接到这种数据要怎么处理呢
jackson,gson等都可以解析
xiaoYmark 2017-01-24
  • 打赏
  • 举报
回复
也不是mongodb哦,只是前端或者其他接口传过来的普通json数据 php的话直接有现成的函数json_decode就能得到数组,但是java接到这种数据要怎么处理呢
李德胜1995 2017-01-24
  • 打赏
  • 举报
回复
mongodb???没用过

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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