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

如下所示的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都转不了

想转为什么???

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);
}

如果你的Object不同的话,就想办法加判断,然后用不同的Object接收,比如此处get(0),get(1),get(2)不同

这是JSON-LIB的方法,我用的是jackson。

我现在是是用splite处理成数组,感觉不正规,看看,jackson怎样处理

我这样能达到目的: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;

 

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,这就有点麻烦了,
资源代下载99dxz其他的暂时还没有想到什么好的方法

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值