[code]

1./**
2. * 从一个JSON 对象字符格式中得到一个java对象,形如:
3. * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}
4. * @param object
5. * @param clazz
6. * @return
7. */
8. public static Object getDTO(String jsonString, Class clazz){
9. JSONObject jsonObject = null;
10. try{
11. setDataFormat2JAVA();
12. jsonObject = JSONObject.fromObject(jsonString);
13. }catch(Exception e){
14. e.printStackTrace();
15. }
16. return JSONObject.toBean(jsonObject, clazz);
17. }
18.
19. /**
20. * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:
21. * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},
22. * beansList:[{}, {}, ...]}
23. * @param jsonString
24. * @param clazz
25. * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class)
26. * @return
27. */
28. public static Object getDTO(String jsonString, Class clazz, Map map){
29. JSONObject jsonObject = null;
30. try{
31. setDataFormat2JAVA();
32. jsonObject = JSONObject.fromObject(jsonString);
33. }catch(Exception e){
34. e.printStackTrace();
35. }
36. return JSONObject.toBean(jsonObject, clazz, map);
37. }
38.
39. /**
40. * 从一个JSON数组得到一个java对象数组,形如:
41. * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
42. * @param object
43. * @param clazz
44. * @return
45. */
46. public static Object[] getDTOArray(String jsonString, Class clazz){
47. setDataFormat2JAVA();
48. JSONArray array = JSONArray.fromObject(jsonString);
49. Object[] obj = new Object[array.size()];
50. for(int i = 0; i < array.size(); i++){
51. JSONObject jsonObject = array.getJSONObject(i);
52. obj[i] = JSONObject.toBean(jsonObject, clazz);
53. }
54. return obj;
55. }
56.
57. /**
58. * 从一个JSON数组得到一个java对象数组,形如:
59. * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
60. * @param object
61. * @param clazz
62. * @param map
63. * @return
64. */
65. public static Object[] getDTOArray(String jsonString, Class clazz, Map map){
66. setDataFormat2JAVA();
67. JSONArray array = JSONArray.fromObject(jsonString);
68. Object[] obj = new Object[array.size()];
69. for(int i = 0; i < array.size(); i++){
70. JSONObject jsonObject = array.getJSONObject(i);
71. obj[i] = JSONObject.toBean(jsonObject, clazz, map);
72. }
73. return obj;
74. }
75.
76. /**
77. * 从一个JSON数组得到一个java对象集合
78. * @param object
79. * @param clazz
80. * @return
81. */
82. public static List getDTOList(String jsonString, Class clazz){
83. setDataFormat2JAVA();
84. JSONArray array = JSONArray.fromObject(jsonString);
85. List list = new ArrayList();
86. for(Iterator iter = array.iterator(); iter.hasNext();){
87. JSONObject jsonObject = (JSONObject)iter.next();
88. list.add(JSONObject.toBean(jsonObject, clazz));
89. }
90. return list;
91. }
92.
93. /**
94. * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性
95. * @param object
96. * @param clazz
97. * @param map 集合属性的类型
98. * @return
99. */
100. public static List getDTOList(String jsonString, Class clazz, Map map){
101. setDataFormat2JAVA();
102. JSONArray array = JSONArray.fromObject(jsonString);
103. List list = new ArrayList();
104. for(Iterator iter = array.iterator(); iter.hasNext();){
105. JSONObject jsonObject = (JSONObject)iter.next();
106. list.add(JSONObject.toBean(jsonObject, clazz, map));
107. }
108. return list;
109. }
110.
111. /**
112. * 从json HASH表达式中获取一个map,该map支持嵌套功能
113. * 形如:{"id" : "johncon", "name" : "小强"}
114. * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap
115. * @param object
116. * @return
117. */
118. public static Map getMapFromJson(String jsonString) {
119. setDataFormat2JAVA();
120. JSONObject jsonObject = JSONObject.fromObject(jsonString);
121. Map map = new HashMap();
122. for(Iterator iter = jsonObject.keys(); iter.hasNext();){
123. String key = (String)iter.next();
124. map.put(key, jsonObject.get(key));
125. }
126. return map;
127. }
128.
129. /**
130. * 从json数组中得到相应java数组
131. * json形如:["123", "456"]
132. * @param jsonString
133. * @return
134. */
135. public static Object[] getObjectArrayFromJson(String jsonString) {
136. JSONArray jsonArray = JSONArray.fromObject(jsonString);
137. return jsonArray.toArray();
138. }
139.
140.
141. /**
142. * 把数据对象转换成json字符串
143. * DTO对象形如:{"id" : idValue, "name" : nameValue, ...}
144. * 数组对象形如:[{}, {}, {}, ...]
145. * map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...}
146. * @param object
147. * @return
148. */
149. public static String getJSONString(Object object) throws Exception{
150. String jsonString = null;
151. //日期值处理器
152. JsonConfig jsonConfig = new JsonConfig();
153. jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());
154. if(object != null){
155. if(object instanceof Collection || object instanceof Object[]){
156. jsonString = JSONArray.fromObject(object, jsonConfig).toString();
157. }else{
158. jsonString = JSONObject.fromObject(object, jsonConfig).toString();
159. }
160. }
161. return jsonString == null ? "{}" : jsonString;
162. }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/madun/archive/2010/08/02/5782882.aspx

需要jar包:ezmorph-1.0.6.jar,json-lib-2.3.jar

创建java对象:

public class Address {
private String road;
private String streate;
private String provience;
private String no;
public String getRoad() {
return road;
}
public void setRoad(String road) {
this.road = road;
}
public String getStreate() {
return streate;
}
public void setStreate(String streate) {
this.streate = streate;
}
public String getProvience() {
return provience;
}
public void setProvience(String provience) {
this.provience = provience;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
}

1.将json对象转化为java对象

JSONObject jsonObject = JSONObject.fromObject("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}");
Address Address = (Address) JSONObject.toBean(jsonObject,Address.class);
log.info(Address.getNo());
log.info(Address.getStreate());
log.info(Address.getProvience());
log.info(Address.getRoad());

2.将java对象转化为json对象

将java对象转化为json对象:

Address address = new Address();
address.setNo("104");
address.setProvience("陕西");
address.setRoad("高新路");
address.setStreate("");
JSONArray json = JSONArray.fromObject(address);
log.info(json.toString());

将java对象list转化为json对象:

Address address = new Address();
address.setNo("104");
address.setProvience("陕西");
address.setRoad("高新路");
address.setStreate("");
Address address2 = new Address();
address2.setNo("105");
address2.setProvience("陕西");
address2.setRoad("未央路");
address2.setStreate("张办");
List list = new ArrayList();
list.add(address);
list.add(address2);
JSONArray json = JSONArray.fromObject(list);
log.info(json.toString());

3.JSONArray转化为list

JSONObject jsonObject = JSONObject.fromObject("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}");
JSONArray jsonArray = new JSONArray();
jsonArray.add("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}");
jsonArray.add("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"123\"}");
Object object = JSONArray.toList(jsonArray,Address.class);

[/code]

net.sf.json相关推荐

  1. net.sf.json.JSONObject 和org.json.JSONObject 的差别

    net.sf.json.JSONObject 和org.json.JSONObject  的差别. 一.创建json对象 String str = "{\"code\": ...

  2. springboot 接口返回数据时 net.sf.json.JSONNull[“empty“]) 异常

    springboot 接口返回数据时 net.sf.json.JSONNull["empty"]) 异常 参考文章: (1)springboot 接口返回数据时 net.sf.js ...

  3. fastjson与net.sf.json区别

    在现在的开发当中,绝大多数引用阿里巴巴的fastjson.当然net.sf.json同样可以使用. 一.引入net.sf.json包 首先用net.sf.json包,当然你要导入很多包来支持commo ...

  4. net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案

    我使用的net.sf.json是json-lib-2.4-jdk15.jar,把json对象转换为普通java实体对象时候有个问题,josn对象转换为java对象之后,json串里面的那几个小数点的值 ...

  5. hibernate报错 net.sf.json.util.CycleDetectionStrategy$StrictionStrategyRepeatedReferenceAsObject

    =执行{+com.j.serviceimpl.ArticleServiceimpl+}类的的+97+行的+selectAllByIdS+()方法, ===异常信息为:{} There is a cyc ...

  6. 【报错笔记】项目使用了JSONArray类,导了import net.sf.json.JSONArray;包报错

    项目使用了JSONArray类,导了import net.sf.json.JSONArray;包报错 报错原因:net.sf.json添加的时候需要添加jdk的版本号 解决方案:在pom.xml中添加 ...

  7. json.net java_java解析JSON (使用net.sf.json)

    例如JSON字符串str如下: { "data": [ { "basic_title": "运筹帷幄因特网", "basic_cr ...

  8. maven中net.sf.json报错的解决方法

    为什么80%的码农都做不了架构师?>>>    今天在用maven添加net.sf.json的jar包的时候,代码如下: <dependency><groupId& ...

  9. net.sf.json.JSONObject处理 null 字符串的一些坑

    转: net.sf.json.JSONObject处理 "null" 字符串的一些坑 2018年05月02日 16:41:25 大白能 阅读数:7026 版权声明:本文为博主原创文 ...

  10. json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

    json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 参考文章: (1)json数据转换异 ...

最新文章

  1. centos 7.0 安装mysql_CentOS 7.0yum安装MySQL
  2. opencv实现分水岭算法
  3. python2与python3在absolute import的区别
  4. Leetcode 每日一题 40 组合2
  5. JS 小数的常用处理方法
  6. 为一个优秀的C++程序员
  7. mysql 左连接 怎么走索引_mysql left join查询没走索引
  8. extjs6 引入ux_关于UX以及如何摆脱UX的6种常见误解
  9. Flash 生命终止,HTML5能否完美替代?
  10. shell 删除文本中的重复行(sort+uniq/awk/sed) (方法=效率啊)
  11. 转:android.support升级到androidx踩坑记录
  12. 对比学习在NLP和多模态领域的应用
  13. 二、bootstrap table 父子表和行列调序
  14. Leetcode 304.二维区域和检索-矩阵不可变
  15. Ubuntu 16.04 修改为几个国内更新源
  16. 使用国产化的TongWeb服务器使用手册
  17. java中ofd文件转pdf_java ofd文件解析
  18. [渝粤教育] 西北农林科技大学 土壤学 参考 资料
  19. 锁定计算机程序到任务栏,程序图标不能锁定到任务栏?这样做so easy啦!
  20. 在windows 10上将vega56 超频,eth算力保持在43。

热门文章

  1. 李思廉的“穷人逻辑”:给咸鱼卖个好价
  2. Adobe Premiere Pro CS6的视频剪辑简单教程
  3. IB课程必修课TOK到底有啥用?
  4. 一文看懂:渠道分析怎么做
  5. seo建设者_网站优化之SEO开发标准
  6. 简述什么是图灵机_带你深入理解图灵机--什么是图灵机、图灵完备
  7. 华为设备:清除配置详解
  8. pHP分析网站日志,通过用数据挖掘技术来分析Web网站日志?
  9. linux水仙花代码,C语言实现对水仙花数的判断
  10. Objective-C中的消息发送总结