01.package com.jetsum.util;
02.
03.import java.io.StringReader;
04.import java.lang.reflect.Field;
05.import java.util.ArrayList;
06.import java.util.List;
07.import java.util.Map;
08.import java.util.Set;
09.
10.import antlr.RecognitionException;
11.import antlr.TokenStreamException;
12.
13.import com.sdicons.json.mapper.JSONMapper;
14.import com.sdicons.json.mapper.MapperException;
15.import com.sdicons.json.model.JSONArray;
16.import com.sdicons.json.model.JSONValue;
17.import com.sdicons.json.parser.JSONParser;
18.
19.public class JsonUtil {
20.
21. /**
22. * JAVA对象转换成JSON字符串
23. * @param obj
24. * @return
25. * @throws MapperException
26. */
27. public static String objectToJsonStr(Object obj) throws MapperException{
28. JSONValue jsonValue = JSONMapper.toJSON(obj);
29. String jsonStr = jsonValue.render(false);
30. return jsonStr;
31. }
32.
33. /**
34. * 重载objectToJsonStr方法
35. * @param obj 需要转换的JAVA对象
36. * @param format 是否格式化
37. * @return
38. * @throws MapperException
39. */
40. public static String objectToJsonStr(Object obj,boolean format) throws MapperException{
41. JSONValue jsonValue = JSONMapper.toJSON(obj);
42. String jsonStr = jsonValue.render(format);
43. return jsonStr;
44. }
45.
46. /**
47. * JSON字符串转换成JAVA对象
48. * @param jsonStr
49. * @param cla
50. * @return
51. * @throws MapperException
52. * @throws TokenStreamException
53. * @throws RecognitionException
54. */
55. @SuppressWarnings({ "rawtypes", "unchecked" })
56. public static Object jsonStrToObject(String jsonStr,Class<?> cla) throws MapperException, TokenStreamException, RecognitionException{
57. Object obj = null;
58. try{
59. JSONParser parser = new JSONParser(new StringReader(jsonStr));
60. JSONValue jsonValue = parser.nextValue();
61. if(jsonValue instanceof com.sdicons.json.model.JSONArray){
62. List list = new ArrayList();
63. JSONArray jsonArray = (JSONArray) jsonValue;
64. for(int i=0;i<jsonArray.size();i++){
65. JSONValue jsonObj = jsonArray.get(i);
66. Object javaObj = JSONMapper.toJava(jsonObj,cla);
67. list.add(javaObj);
68. }
69. obj = list;
70. }else if(jsonValue instanceof com.sdicons.json.model.JSONObject){
71. obj = JSONMapper.toJava(jsonValue,cla);
72. }else{
73. obj = jsonValue;
74. }
75. }catch(Exception e){
76. e.printStackTrace();
77. }
78. return obj;
79. }
80.
81. /**
82. * 将JAVA对象转换成JSON字符串
83. * @param obj
84. * @return
85. * @throws IllegalArgumentException
86. * @throws IllegalAccessException
87. */
88. @SuppressWarnings("rawtypes")
89. public static String simpleObjectToJsonStr(Object obj,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
90. if(obj==null){
91. return "null";
92. }
93. String jsonStr = "{";
94. Class<?> cla = obj.getClass();
95. Field fields[] = cla.getDeclaredFields();
96. for (Field field : fields) {
97. field.setAccessible(true);
98. if(field.getType() == long.class){
99. jsonStr += "\""+field.getName()+"\":"+field.getLong(obj)+",";
100. }else if(field.getType() == double.class){
101. jsonStr += "\""+field.getName()+"\":"+field.getDouble(obj)+",";
102. }else if(field.getType() == float.class){
103. jsonStr += "\""+field.getName()+"\":"+field.getFloat(obj)+",";
104. }else if(field.getType() == int.class){
105. jsonStr += "\""+field.getName()+"\":"+field.getInt(obj)+",";
106. }else if(field.getType() == boolean.class){
107. jsonStr += "\""+field.getName()+"\":"+field.getBoolean(obj)+",";
108. }else if(field.getType() == Integer.class||field.getType() == Boolean.class
109. ||field.getType() == Double.class||field.getType() == Float.class
110. ||field.getType() == Long.class){
111. jsonStr += "\""+field.getName()+"\":"+field.get(obj)+",";
112. }else if(field.getType() == String.class){
113. jsonStr += "\""+field.getName()+"\":\""+field.get(obj)+"\",";
114. }else if(field.getType() == List.class){
115. String value = simpleListToJsonStr((List<?>)field.get(obj),claList);
116. jsonStr += "\""+field.getName()+"\":"+value+",";
117. }else{
118. if(claList!=null&&claList.size()!=0&&claList.contains(field.getType())){
119. String value = simpleObjectToJsonStr(field.get(obj),claList);
120. jsonStr += "\""+field.getName()+"\":"+value+",";
121. }else{
122. jsonStr += "\""+field.getName()+"\":null,";
123. }
124. }
125. }
126. jsonStr = jsonStr.substring(0,jsonStr.length()-1);
127. jsonStr += "}";
128. return jsonStr;
129. }
130.
131. /**
132. * 将JAVA的LIST转换成JSON字符串
133. * @param list
134. * @return
135. * @throws IllegalArgumentException
136. * @throws IllegalAccessException
137. */
138. @SuppressWarnings("rawtypes")
139. public static String simpleListToJsonStr(List<?> list,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
140. if(list==null||list.size()==0){
141. return "[]";
142. }
143. String jsonStr = "[";
144. for (Object object : list) {
145. jsonStr += simpleObjectToJsonStr(object,claList)+",";
146. }
147. jsonStr = jsonStr.substring(0,jsonStr.length()-1);
148. jsonStr += "]";
149. return jsonStr;
150. }
151.
152. /**
153. * 将JAVA的MAP转换成JSON字符串,
154. * 只转换第一层数据
155. * @param map
156. * @return
157. */
158. public static String simpleMapToJsonStr(Map<?,?> map){
159. if(map==null||map.isEmpty()){
160. return "null";
161. }
162. String jsonStr = "{";
163. Set<?> keySet = map.keySet();
164. for (Object key : keySet) {
165. jsonStr += "\""+key+"\":\""+map.get(key)+"\",";
166. }
167. jsonStr = jsonStr.substring(0,jsonStr.length()-1);
168. jsonStr += "}";
169. return jsonStr;
170. }
171.}
分享到:
相关推荐
标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...
在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
`fromObject`方法将Java对象转换为`JSONObject`,然后调用`toString()`将其转化为JSON字符串。 ### 进阶使用 - **处理嵌套结构**:`JSONObject`也支持嵌套结构,即JSON对象内包含其他JSON对象或数组。可以通过递归...
`net.sf.json.JSONObject`是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串之间转换的功能。这篇博客文章"net.sf.json.JSONObject实现Object对象与Json字符串的互转"深入探讨了如何使用`...
以上就是`JSONUtil`类的主要工作原理和相关知识点,通过这个工具类,开发者可以在Java应用中方便地将各种类型的对象转换为JSON字符串,便于数据交换或存储。在实际开发中,还可以考虑使用更现代的JSON库,如Jackson...
本文将介绍如何将各种类型的Java对象转换为JSON字符串,以供网络通信或存储。以下是对给定代码的详细解释: 首先,为了实现对象到JSON的转换,我们需要引入一些依赖库。在提供的描述中提到了以下jar包: 1. `...
在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...
以`com.google.gson`为例,我们需要创建一个`Gson`实例,然后调用`toJson()`方法将Java对象转换为JSON字符串。例如,我们有一个名为`Person`的类,包含`name`和`age`属性,可以这样做: ```java import ...
本文将详细介绍如何将JSON字符串直接转换为Java对象,特别是涉及到多层List集合的情况。在本例中,我们将使用`net.sf.json.JSONObject`类来实现这一功能。 首先,确保你的项目中已经引入了必要的库。在使用`...
创建一个 Gson对象在调用其toJson方法将JAVA对象或集合转换成json字符串 Gson gson = new Gson(); String toJson = gson.toJson(Object o);
以下我们将详细探讨Java中将对象转换为JSON字符串的三种方法,这里使用的是阿里巴巴的Fastjson库,它是一个高性能的JSON库,提供了丰富的API来处理JSON与Java对象之间的转换。 1. **将Java对象转成JSON串** 当我们...
1. `JSON.parse()`方法用于将一个JSON字符串转换为JavaScript对象。在JSON中,数据被表示为键值对(key-value pairs)的集合,而JavaScript对象正是以这种方式存储数据。例如,如果你有一个JSON字符串`'{"name": ...
这个库提供了丰富的API,使得我们可以轻松地将Java对象转化为JSON字符串,以及将JSON字符串反序列化为Java对象。 ### JSON对象与Java对象的转换 1. **JSON字符串转Java对象** 使用`json-lib`,我们可以将JSON...
使用Gson,你可以将Java对象转换为对应的JSON字符串,反之亦然。例如,如果你有一个User类,你可以轻松地将其对象转换为Json字符串: ```java import com.google.gson.Gson; class User { String name; int age;...
除了解析JSON字符串到Java对象,这两个库还支持将Java对象转换为JSON字符串,以及解析JSON到Map或List等数据结构。 3. **其他库** 除了Jackson和Gson,还有其他的JSON处理库,如org.json(提供简单的JSON工具类)...
Java Web 程序实现返回 JSON 字符串的方法总结 Java Web 程序实现返回 JSON 字符串的...使用 json.org 提供的 JSON 库可以轻松地将 Java 对象转换为 JSON 字符串,并且解决了 Java 对象属性为空时返回空字符串的问题。
自己有空时用java反射写的json转化工具,有不完善之处,多包涵
标题中的“提供将对象转换成JSON字符串的方法 (2).pdf”指的是一个关于如何在Java编程中将对象转换为JSON格式的文档。描述中提到的是这个文档的更新日期和作者信息。标签“互联网”可能暗示了这个方法在Web开发或者...
1. `toJson()`方法:这个方法将Java对象转换为JSON字符串。例如,如果我们有一个自定义的`Student`类,我们可以创建一个`Student`对象并使用`toJson()`将其转换为JSON格式的字符串。在示例代码中,`gson.toJson...
`json-lib`是一个用于处理JSON的Java库,它可以将Java对象转换成JSON字符串,也可以将JSON字符串解析成Java对象。`json-lib`支持多种类型的Java对象,包括普通Java对象、集合类型等。 #### 三、环境准备 在使用`...