将包含对象数组的json字符串转为包含泛型集合的javabean对象

背景:

      服务器端返回json字符串,为了便于操作将json字符串转换为自定义的java对象

 

说明:

   转换的主要函数说明

 JSONObject.toBean(Object, Bean.class, Map);

   参数说明:

   Object: 你得到的JSONObject 对象

   Bean.class: 要转换成的Bean的类型

   Map: Bean的成员类型

  需要引用的jar包

commons-beanutils.jar

commons-collections.jar

commons-lang-2.5.jar

commons-logging.jar

ezmorph-1.0.6.jar

json-lib-2.3-jdk15.jar

  操作:

//要转换成为的对象

public class TrafficResInfo {
 private int resultCode;
 private String resultMsg;
 private String record_count;
 private List<TrafficOrderInfo> records;

 public int getResultCode() {
  return resultCode;
 }

 public void setResultCode(int resultCode) {
  this.resultCode = resultCode;
 }

 public String getResultMsg() {
  return resultMsg;
 }

 public void setResultMsg(String resultMsg) {
  this.resultMsg = resultMsg;
 }

 public String getRecord_count() {
  return record_count;
 }

 public void setRecord_count(String record_count) {
  this.record_count = record_count;
 }

 public List<TrafficOrderInfo> getRecords() {
  return records;
 }

 public void setRecords(List<TrafficOrderInfo> records) {
  this.records = records;
 }

}

 

//客户端返回字符串

String ret = "{\"record_count\":2,\"records\":[{\"cxbd_id\":5084185,\"record_id\":1},{\"cxbd_id\":5084186,\"record_id\":2}],\"resultCode\":\"200\",\"resultMsg\":\"操作成功。\"}";

//将字符串转换为JSON对象
  JSONObject object = JSONObject.fromObject(ret);

//指定要转成为的对象的成员属性的数据类型
  Map<String, Class<?>> cmap = new HashMap<String, Class<?>>();

/**指定records属性的类型为TrafficOrderInfo,如果不指定,records中的泛型类型则为net.sf.ezmorph.bean.MorphDynaBean,转换后则为*ArrayList<MorphDynaBean>,如想获取car_num需要Object obj=morphDynaBean.get("car_num");不便于操作。指定为TrafficOrderInfo后,转换后则为*ArrayList<TrafficOrderInfo>。*/


 cmap.put("records", TrafficOrderInfo.class);

//如下可以不用指定
//  cmap.put("car_num",String.class);
//  cmap.put("models",String.class);
//  cmap.put("cxbd_id",String.class);
//  cmap.put("record_id",String.class);
  
TrafficResInfo trafficResInfo = (TrafficResInfo) JSONObject.toBean(object, TrafficResInfo.class,cmap);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值