`

将JAVA对象转换成JSON字符串 .

 
阅读更多
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字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    java对象转换为json字符串或字符串数组

    在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    `fromObject`方法将Java对象转换为`JSONObject`,然后调用`toString()`将其转化为JSON字符串。 ### 进阶使用 - **处理嵌套结构**:`JSONObject`也支持嵌套结构,即JSON对象内包含其他JSON对象或数组。可以通过递归...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    `net.sf.json.JSONObject`是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串之间转换的功能。这篇博客文章"net.sf.json.JSONObject实现Object对象与Json字符串的互转"深入探讨了如何使用`...

    各种对象转成JSON字符串.pdf

    以上就是`JSONUtil`类的主要工作原理和相关知识点,通过这个工具类,开发者可以在Java应用中方便地将各种类型的对象转换为JSON字符串,便于数据交换或存储。在实际开发中,还可以考虑使用更现代的JSON库,如Jackson...

    各种对象转成JSON字符串.docx

    本文将介绍如何将各种类型的Java对象转换为JSON字符串,以供网络通信或存储。以下是对给定代码的详细解释: 首先,为了实现对象到JSON的转换,我们需要引入一些依赖库。在提供的描述中提到了以下jar包: 1. `...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    以`com.google.gson`为例,我们需要创建一个`Gson`实例,然后调用`toJson()`方法将Java对象转换为JSON字符串。例如,我们有一个名为`Person`的类,包含`name`和`age`属性,可以这样做: ```java import ...

    Java中Json字符串直接转换为对象的方法(包括多层List集合)

    本文将详细介绍如何将JSON字符串直接转换为Java对象,特别是涉及到多层List集合的情况。在本例中,我们将使用`net.sf.json.JSONObject`类来实现这一功能。 首先,确保你的项目中已经引入了必要的库。在使用`...

    GSON包,JAVA对象和LIST转换成JSON字符串

    创建一个 Gson对象在调用其toJson方法将JAVA对象或集合转换成json字符串 Gson gson = new Gson(); String toJson = gson.toJson(Object o);

    java转json串的几种方法

    以下我们将详细探讨Java中将对象转换为JSON字符串的三种方法,这里使用的是阿里巴巴的Fastjson库,它是一个高性能的JSON库,提供了丰富的API来处理JSON与Java对象之间的转换。 1. **将Java对象转成JSON串** 当我们...

    json2.js 字符串转转json对象工具

    1. `JSON.parse()`方法用于将一个JSON字符串转换为JavaScript对象。在JSON中,数据被表示为键值对(key-value pairs)的集合,而JavaScript对象正是以这种方式存储数据。例如,如果你有一个JSON字符串`'{"name": ...

    json_lib使用实例:java对象与json字符串的互转

    这个库提供了丰富的API,使得我们可以轻松地将Java对象转化为JSON字符串,以及将JSON字符串反序列化为Java对象。 ### JSON对象与Java对象的转换 1. **JSON字符串转Java对象** 使用`json-lib`,我们可以将JSON...

    java解析Json字符串

    使用Gson,你可以将Java对象转换为对应的JSON字符串,反之亦然。例如,如果你有一个User类,你可以轻松地将其对象转换为Json字符串: ```java import com.google.gson.Gson; class User { String name; int age;...

    java中解析json字符串

    除了解析JSON字符串到Java对象,这两个库还支持将Java对象转换为JSON字符串,以及解析JSON到Map或List等数据结构。 3. **其他库** 除了Jackson和Gson,还有其他的JSON处理库,如org.json(提供简单的JSON工具类)...

    Java Web程序实现返回JSON字符串的方法总结

    Java Web 程序实现返回 JSON 字符串的方法总结 Java Web 程序实现返回 JSON 字符串的...使用 json.org 提供的 JSON 库可以轻松地将 Java 对象转换为 JSON 字符串,并且解决了 Java 对象属性为空时返回空字符串的问题。

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

    自己有空时用java反射写的json转化工具,有不完善之处,多包涵

    提供将对象转换成JSON字符串的方法 (2).pdf

    标题中的“提供将对象转换成JSON字符串的方法 (2).pdf”指的是一个关于如何在Java编程中将对象转换为JSON格式的文档。描述中提到的是这个文档的更新日期和作者信息。标签“互联网”可能暗示了这个方法在Web开发或者...

    Gson对Java嵌套对象和JSON字符串之间的转换 ..pdf

    1. `toJson()`方法:这个方法将Java对象转换为JSON字符串。例如,如果我们有一个自定义的`Student`类,我们可以创建一个`Student`对象并使用`toJson()`将其转换为JSON格式的字符串。在示例代码中,`gson.toJson...

    JSON 字符串 与 java 对象的转换

    `json-lib`是一个用于处理JSON的Java库,它可以将Java对象转换成JSON字符串,也可以将JSON字符串解析成Java对象。`json-lib`支持多种类型的Java对象,包括普通Java对象、集合类型等。 #### 三、环境准备 在使用`...

Global site tag (gtag.js) - Google Analytics