Bean定义:

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

JSON字符串:

 {
"dataPoints":[
{
"dataKV":{
"pulse":"103",
"measurementTime":"2015-12-02 12:06:32",
"low":"91",
"high":"126",
"id":"d750fed2-0c95-4722-92ac-3078fa34390b"
},
"dataType":"1",
"eqmtNo":"",
"sendDateTime":"2015-12-02 12:06:33",
"serviceNo":"5716b0badb4b426cbfaaebb1be7d57b3",
"userSeq":"1"
}
],
"diagResult":"",
"errorCode":"1",
"errorMsg":"成功!",
"propose":"",
"service":"GET_M100_DATA",
"sessionId":"1",
"summary":""
}

转换代码如下:

 public static JsonConfig getDecodeJSONConfig(){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(String.class, new JsonValueProcessor() {
public Object processArrayValue(Object value,
JsonConfig arg1) {
// TODO Auto-generated method stub
return process(value);
} public Object processObjectValue(String key,
Object value, JsonConfig arg2) {
// TODO Auto-generated method stub
return process(value);
} public Object process(Object value) {
try {
if (value instanceof String) {
return URLDecoder.decode(value.toString(),"UTF-8");
}
return value == null ? "" : value.toString();
} catch (Exception e) {
return "";
}
}
}
);
return jsonConfig;
}
public GetM100DataResponse parseData(String resData){//resData为JSON字符串
JsonConfig jsonConfig = getDecodeJSONConfig();
JSONObject json = JSONObject.fromObject(resData, jsonConfig);
/*
* 在JSONObject.toBean的时候,如果转换的类中有集合,
* 可以先定义:Map<String, Class> classMap = new HashMap<String, Class>();
* 然后在classMap中put你要转换的类中的集合名,如:
*/
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("dataPoints", M100DataObject.class);//dataPoints 为 属性名称
/*
* 然后在toBean()的时候把参数加上, 如:
*/
GetM100DataResponse response = (GetM100DataResponse)JSONObject.toBean(json, GetM100DataResponse.class, classMap);
return response;
}

over

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

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

    项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的 ...

  2. JSON转换类(二)--List转换成Json、对象集合转换Json等

    #region List转换成Json /// <summary> /// List转换成Json /// </summary> public static string Li ...

  3. List转换成Json、对象集合转换Json等

    #region List转换成Json /// <summary> /// List转换成Json /// </summary> public static string Li ...

  4. C# 转换Json类

    using System; using System.Collections.Generic; using System.Text; using System.Data; using System.R ...

  5. Java对象转换成xml对象和Java对象转换成JSON对象

    1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...

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

    @RequestMapping(value = "updateInvestorApplyAccountNo", method = RequestMethod.POST) @Resp ...

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

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  8. 三:C#对象转换Json时的一些高级(特殊)设置;

    导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型:    二:C#对象.集合.DataTable与Json内容互转示例: ...

  9. Java基础97 json插件的使用(java对象和json字符串对象之间的转换)

    1.需要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-19 * */ public class ...

随机推荐

  1. scala windows 安装

    下载 https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.msi 第一步:设置 右击我的电脑,单击"属性",进入 ...

  2. 500 多个 Linux 命令文档搜索

    500 多个 Linux 命令文档搜索 搜索界面:https://wangchujiang.com/linux-command/ 源码:https://github.com/jaywcjlove/li ...

  3. 基于原生JS的jsonp方法的实现

    基于原生JS的jsonp方法的实现 jsonp,相信大家并不陌生,是在js异步请求中解决跨域的方法之一,原理很简单,有不清楚的同学可以google下,这里就补详细解释了.在Jquery库中,jQuer ...

  4. Android 之JSON数据解析

    (以下基本都是郭霖大神<第一行代码>中的知识) JSON数据与xml相比,优势在于体积更小,传输所需的流量少.但是缺点也很明显,就是语义性较差. 下面是一组JSON格式的数据. [{&qu ...

  5. 最大流 [USACO4.2]草地排水Drainage Ditches

    Background 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免 ...

  6. java.lang.TypeNotPresentException: Type org.eclipse.jetty.maven.plugin.JettyRunMojo not present的原因

    原因 :我的JDK版本不支持当前Jetty版本. 解决:将jetty版本换成较低版本的就可以,这个是我之前的我的jdk是1.7.7的 <groupId>org.eclipse.jetty& ...

  7. 51nod1423 最大二"货" 单调栈

    枚举每个点作为次大值,用单调栈处理出左边 / 右边第一个比它大的数,直接回答 复杂度$O(n)$ #include <cstdio> #include <cstring> #i ...

  8. UVA11468 Substring --- AC自动机 + 概率DP

    UVA11468 Substring 题目描述: 给定一些子串T1...Tn 每次随机选择一个字符(概率会给出) 构造一个长为n的串S,求T1...Tn不是S的子串的概率 直接把T1...Tn建成AC ...

  9. Week Two

    2018.12.3: 1.[BZOJ 4819] 2.[BZOJ 4827] 3.[P1919] 4.[FFT模板] 2018.12.4: 1.[NTT] 2.[MTT(CRT)] 3.[MTT(my ...

  10. adroid swipeRefreshLayout无法显示进度条的问题

    一句话经验:必须嵌套scrollerview或者listview