json字符串转化为java对象(一)
来源:互联网 发布:js 是否数字 编辑:程序博客网 时间:2024/06/05 12:06
适合情况:不是一般的java类(也就是说,属性都是基本类型的称为一般的Java类),属性里含有集合,且集合数据为引用类型
所需jar包:net.sf.json
情景如下:
json字符串:
{"flag":1,"msg":"Success","tp":1508488247,"sign":"f1c9e27f8c7b8c83faf86026121b9088",
"dataArray":[{"channel":"测试推广方式1","day":"2017-09-01","campaign":"测试推广活动","type":3,"price":100,"zcCount":2500,"jjCount":1800,"khCount":600,"dyCount":450000,"income":60000,"pv":980660,"uv":120972},
{"channel":"测试推广方式2","day":"2017-09-01","campaign":"测试推广活动","type":3,"price":100,"zcCount":500,"jjCount":120,"khCount":60,"dyCount":60000,"income":6000,"pv":80660,"uv":20972},
{"channel":"测试推广方式3","day":"2017-09-01","campaign":"测试推广活动","type":3,"price":100,"zcCount":6500,"jjCount":9800,"khCount":1800,"dyCount":7350000,"income":180000,"pv":98210660,"uv":12092372}]}
所需转化的类:
public class ReqMessage<T> extends Base {
/**结果状态码*/
private Integer flag;
/**错误原因*/
private String msg;
/**时间戳*/
private String tp;
/**校验码*/
private String sign;
/** 当flag==1时,推广方式的业绩数据 */
private List<T> dataArray;
public Integer getFlag() {
return flag;
}
public void setFlag(Integer flag) {
this.flag = flag;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getTp() {
return tp;
}
public void setTp(String tp) {
this.tp = tp;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
public List<T> getDataArray() {
return dataArray;
}
public void setDataArray(List<T> dataArray) {
this.dataArray = dataArray;
}
@Override
public String toString() {
return "ReqMessage{" +
"flag=" + flag +
", msg='" + msg + '\'' +
", tp='" + tp + '\'' +
", sign='" + sign + '\'' +
", dataArray=" + dataArray +
'}';
}
}
转化代码:
/**json转化为对象*/
private ReqMessage<ZhongYinChannel> parseJson(String json){
JSONObject jsonObject = JSONObject.fromObject(json);
Map<String,Class> map = new HashMap<>();
map.put("dataArray",ZhongYinChannel.class);
ReqMessage<ZhongYinChannel> req = (ReqMessage<ZhongYinChannel>)JSONObject.toBean(jsonObject,ReqMessage.class,map);
return req;
}
提示:T必须为引用类型,我这里的ZhongYinChannel中的属性都是基本类型,其实里面也可以嵌套集合类型,只需将集合中数据的类型,指定到map中即可,我这里只尝试了这种类型json的转化,其他情况不保证有效。
- json字符串转化为java对象(一)
- java对象转化为json字符串
- 将json字符串转化为java对象
- json字符串转化为对象
- JSON-lib转化JAVA对象为JSON格式字符串
- JOSN对象转化为字符串,字符串转化为JSON对象
- json字符串转化为复杂的java对象问题解决分享
- JSON 转化为java对象
- JSON转化为java对象
- Java如何将字符串转化为JSON(json-lib)
- Java将Json字符串转化为对象(包含list型变量)
- iOS对象(字典或数组)转化为JSon字符串
- iOS对象(字典或数组)转化为JSon字符串
- 把字符串转化为json对象
- 【common】JavaScript ----- 对象转化为json字符串
- 将json字符串转化为Map对象
- JSON字符串转化为JSONOBJECT对象
- 如何将json对象转化为字符串?
- Java多线程下载框架01:多线程的好处以及断点续传原理
- python3 datetime() 模块 之 datetime 类
- 创建 Android 库
- 响应式布局的三大要点
- 安装测试系统karma
- json字符串转化为java对象(一)
- Ubuntu 16.04 无法安装软件解决办法
- 未来三个月技术方向
- wpf 新建listview
- android机型适配终极篇
- xss攻击解决方案
- python3 datetime() 模块之 timedelta() 类
- 在Mac、Linux 终端显示 Git 当前所在分支
- apache kafka性能测试命令使用和构建kafka-perf