JSONObject 转换 JSON复杂对象

Bean定义:

 1 public class GetM100DataResponse {
 2     private String service;//接口代码
 3     private String sessionId;//会话Id
 4     private String errorCode;//错误码
 5     private String errorMsg;//错误消息
 6     private String summary;//摘要
 7
 8     private List<M100DataObject> dataPoints;    //数据列表
 9
10     //get set  略
11 }
 1 public class M100DataObject {
 2     private String dataType;    //数据类型    String
 3     private String sendDateTime;    //发送时间    String
 4     private M100DataObjectKV dataKV;    //数值对象    Object
 5     private String serviceNo;    //用户服务号    String
 6     private Integer userSeq;    //用户序号    Integer
 7     private String eqmtNo;    //设备号    String
 8
 9     //get set  略
10 }

JSON字符串:

 1 {
 2     "dataPoints":[
 3         {
 4             "dataKV":{
 5                 "pulse":"103",
 6                 "measurementTime":"2015-12-02 12:06:32",
 7                 "low":"91",
 8                 "high":"126",
 9                 "id":"d750fed2-0c95-4722-92ac-3078fa34390b"
10             },
11             "dataType":"1",
12             "eqmtNo":"",
13             "sendDateTime":"2015-12-02 12:06:33",
14             "serviceNo":"5716b0badb4b426cbfaaebb1be7d57b3",
15             "userSeq":"1"
16         }
17     ],
18     "diagResult":"",
19     "errorCode":"1",
20     "errorMsg":"成功!",
21     "propose":"",
22     "service":"GET_M100_DATA",
23     "sessionId":"1",
24     "summary":""
25 }

转换代码如下:

 1 public static JsonConfig getDecodeJSONConfig(){
 2     JsonConfig jsonConfig = new JsonConfig();
 3     jsonConfig.registerJsonValueProcessor(String.class, new JsonValueProcessor() {
 4             public Object processArrayValue(Object value,
 5                     JsonConfig arg1) {
 6                 // TODO Auto-generated method stub
 7                 return process(value);
 8             }
 9
10             public Object processObjectValue(String key,
11                     Object value, JsonConfig arg2) {
12                 // TODO Auto-generated method stub
13                 return process(value);
14             }
15
16             public Object process(Object value) {
17                 try {
18                     if (value instanceof String) {
19                         return  URLDecoder.decode(value.toString(),"UTF-8");
20                     }
21                     return value == null ? "" : value.toString();
22                 } catch (Exception e) {
23                     return "";
24                 }
25             }
26         }
27     );
28     return jsonConfig;
29 }
30 public GetM100DataResponse parseData(String resData){//resData为JSON字符串
31     JsonConfig jsonConfig = getDecodeJSONConfig();
32     JSONObject json = JSONObject.fromObject(resData, jsonConfig);
33     /*
34      * 在JSONObject.toBean的时候,如果转换的类中有集合,
35      * 可以先定义:Map<String, Class> classMap = new HashMap<String, Class>();
36      * 然后在classMap中put你要转换的类中的集合名,如:
37      */
38     Map<String, Class> classMap = new HashMap<String, Class>();
39     classMap.put("dataPoints", M100DataObject.class);//dataPoints 为 属性名称
40     /*
41      * 然后在toBean()的时候把参数加上, 如:
42      */
43     GetM100DataResponse response = (GetM100DataResponse)JSONObject.toBean(json, GetM100DataResponse.class, classMap);
44     return response;
45 }

over

时间: 2024-10-01 03:47:27

JSONObject 转换 JSON复杂对象的相关文章

JSONObject转换JSON之将Date转换为指定格式(转)

项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的时间对象,这时JSONObject默认会将Date属性转换成这样的格式: Html代码   {"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours

FastJson、Jackson、Gson进行Java对象转换Json的细节处理

前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java对象为json的时候,默认是不序列化null值对应的key的 也就是说当对象里面的属性为空的时候,在转换成json时,不序列化那些为null值的属性 具体案例如下: AutoPartsSearchRequest 有以下属性: public static void main(String[] args

json字符串转换成user对象。

原代码如下: 1 DefaultHttpClient httpClient = new DefaultHttpClient(); 2 HttpPost method = new HttpPost("http://localhost:8080/tu-login/tuloginMethod"); 3 4 JSONObject jsonParam = new JSONObject(); 5 jsonParam.put("phone", phone); 6 jsonPara

json字符串转json对象,json对象转换成java对象

@RequestMapping(value = "updateInvestorApplyAccountNo", method = RequestMethod.POST) @ResponseBody public void updateInvestorApplyAccountNo(HttpServletRequest request, HttpServletResponse response, @RequestBody String requestBody) { int num = 0;

JSON字符串转换成Map对象

页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import net.sf.json.JSONObject; public Map<String, String> toMap(Object object) { Map<String, String> data = new HashMap<Str

json字符串转成 json对象 json对象转换成java对象

import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; 依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.54</version></dependency> String r

FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具(转)

本文转自:http://blog.csdn.net/djun100/article/details/24237371 这是关于FastJson的一个使用Demo,在Java环境下验证的 [java] view plain copy class User{ private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public 

Newtonsoft.Json 把对象转换成json字符串

var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount + pagesize - 1) / pagesize,//总页数 rows = data.ToList<Web.Entity.Db.Table1Bean>(), }; //JsonResult jr = Json(resultJson, "application/json",

Javascript-自定义对象转换成JSon后如何再转换回自定义对象

man是自定义的对象,使用var tim = JSON.stringify(man); var newman=JSON.parse(tim)后newman的类型是"object"并不是一个Man,怎么才能变回一个Man呢? function Man() { this._type = "man"; this.name=""; this.run = function () { alert("run!!"); alert(this.