使用jackson怎样把json串转成对象数组?

luhongjun 2017-04-23 11:12:43
如下所示的AA:
String aa="[{'aaa':'111'}"
+",{'dwbh':'01','dwmc':'会议','sjbh':'001','klmyh':'aaa','gsfr':'bbb','dwjb':'ddd'}"
+",{'zsxm':'yyyy','sfzmhm':'220111','yhbh':'001','yhnc':'333','phone':'13353296588','email':'333@111'}]";

我用jackson怎样把他变成对象数组?也就是变成三个不同对象。无论是用LIST还是map都转不了
...全文
651 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luhongjun 2020-06-07
  • 打赏
  • 举报
回复
怎么不能结贴
残风炫舞 2017-04-25
  • 打赏
  • 举报
回复
jackson的话要求格式比较严 ,你要先把你的字符串中的单引号改成转义的 \" 然后我这么试了下,可以做成Map, objectMapper = new ObjectMapper(); String aa = "[{\"aaa\":\"111\"}" + ",{\"dwbh\":\"01\",\"dwmc\":\"会议\",\"sjbh\":\"001\",\"klmyh\":\"aaa\",\"gsfr\":\"bbb\",\"dwjb\":\"ddd\"}" + ",{\"zsxm\":\"yyyy\",\"sfzmhm\":\"220111\",\"yhbh\":\"001\",\"yhnc\":\"333\",\"phone\":\"13353296588\",\"email\":\"333@111\"}]"; List<Map<String, Object>> list = objectMapper.readValue(aa, List.class); System.out.println(list.size()); for(Map<String,Object> map:list){ System.out.println(map); } 但是还是需要将map再转一次转到Object,这就有点麻烦了,其他的暂时还没有想到什么好的方法
残风炫舞 2017-04-24
  • 打赏
  • 举报
回复
如果你的Object不同的话,就想办法加判断,然后用不同的Object接收,比如此处get(0),get(1),get(2)不同
残风炫舞 2017-04-24
  • 打赏
  • 举报
回复
JSONArray jsArray = JSONArray.fromObject(aa); for (int i = 0; i < jsArray.size(); i++) { JSONObject jsObj = (JSONObject) jsArray.get(i); Object Obj = JSONObject.toBean(jsObj,Object.class); }
luhongjun 2017-04-24
  • 打赏
  • 举报
回复
引用 2 楼 o0sxdo0 的回复:
JSONArray jsArray = JSONArray.fromObject(aa); for (int i = 0; i < jsArray.size(); i++) { JSONObject jsObj = (JSONObject) jsArray.get(i); Object Obj = JSONObject.toBean(jsObj,Object.class); }
我这样能达到目的:jackson是否有好的办法 String[] sourceStrArray = json.split("},"); int iMax=sourceStrArray.length; for (int i = 0; i < iMax; i++) { if (i==0){ sourceStrArray[i]=sourceStrArray[i]+"}]"; } else if (i==iMax-1){ sourceStrArray[i]="["+sourceStrArray[i]; } else { sourceStrArray[i]="["+sourceStrArray[i]+"}]"; } System.out.println(sourceStrArray[i]); } return sourceStrArray;
luhongjun 2017-04-24
  • 打赏
  • 举报
回复
引用 2 楼 o0sxdo0 的回复:
JSONArray jsArray = JSONArray.fromObject(aa); for (int i = 0; i < jsArray.size(); i++) { JSONObject jsObj = (JSONObject) jsArray.get(i); Object Obj = JSONObject.toBean(jsObj,Object.class); }
这是JSON-LIB的方法,我用的是jackson。 我现在是是用splite处理成数组,感觉不正规,看看,jackson怎样处理
李德胜1995 2017-04-23
  • 打赏
  • 举报
回复
想转为什么???

81,122

社区成员

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

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