不多说废话了,比较简单,直接上代码吧,都是在本人电脑上跑过的。
说明下还有个Student的实体类没上传了,随便搞几个属性测试下就可以。
转换类:
import java.io.IOException; import java.util.Collections; import java.util.List; import net.sf.json.JSON; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; public class HTTPHelper { private static String jsonStr = "{\"mobilePhone\":\"13510398031\",\"userName\":\"李四\"}"; private static String jsonStr2 = "[{\"mobilePhone\":\"13510398031\",\"userName\":\"李四\"},{\"mobilePhone\":\"13824568145\",\"userName\":\"张三\"}]"; private static final JSON buildJSON(String jsonStr) throws IOException { return JSONSerializer.toJSON(jsonStr); } //字符串 转 JSONObject public static final JSONObject buildJSONObject() throws IOException { return (JSONObject) buildJSON(jsonStr); } //字符串(数组) 转 JSONArray public static final JSONArray buildJSONArray() throws IOException { return (JSONArray) buildJSON(jsonStr2); } // 字符串 转 JSONObject public static final JSONObject buildJSONObjectFromParameter() throws IOException { return JSONObject.fromObject(jsonStr); } // 字符串(数组) 转 JSONArray public static final JSONArray buildJSONArrayFromParameter() throws IOException { return JSONArray.fromObject(jsonStr2); } //Json字符串 转 实体对象 public static final <T> T getObject(Class<T> clazz) throws IOException { return com.alibaba.fastjson.JSONObject.parseObject(jsonStr, clazz); } //Json字符串 转 数组对象 @SuppressWarnings("unchecked") public static final <T> List<T> getList(Class<T> clazz) throws IOException { List<T> list = com.alibaba.fastjson.JSONArray.parseArray(jsonStr2, clazz); return list == null ? Collections.EMPTY_LIST : list; } // 对象 转 Json字符串 public static final String getJsonString(Object o) throws IOException { return com.alibaba.fastjson.JSONObject.toJSONString(o); } // 对象 转 com.alibaba.fastjson.JSONObject对象 public static final com.alibaba.fastjson.JSONObject getJson(Object o) throws IOException { return (com.alibaba.fastjson.JSONObject)com.alibaba.fastjson.JSONObject.toJSON(o); } //数组对象 转 Json字符串 public static final String getJsonArrayString(Object o) throws IOException { return com.alibaba.fastjson.JSONArray.toJSONString(o); } }
测试代码:
import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.user.Student; import com.utils.HTTPHelper; public class HTTPHelperTest { public static void main(String[] args) throws IOException { // 字符串 转 JSONObject JSONObject jsonObject = HTTPHelper.buildJSONObjectFromParameter(); String account = jsonObject.getString("mobilePhone"); String name = jsonObject.getString("userName"); System.out.println(account+"======================"+name); // 字符串(数组) 转 JSONArray JSONArray jsonArray = HTTPHelper.buildJSONArrayFromParameter(); System.out.println(jsonArray); Iterator iterator = jsonArray.iterator(); while (iterator.hasNext()) { JSONObject jsonObj = (JSONObject) iterator.next(); System.out.println(jsonObj.getString("userName")); } // 字符串(数组) 转 JSONArray JSONArray jsonArr = HTTPHelper.buildJSONArray(); System.out.println(jsonArr); Iterator iterator1 = jsonArr.iterator(); while (iterator1.hasNext()) { JSONObject jsonObj = (JSONObject) iterator1.next(); System.out.println(jsonObj.getString("userName")); } //Json字符串 转 实体对象 Student s = HTTPHelper.getObject(Student.class); System.out.println(s.getUserName()); //Json字符串 转 数组对象 List<Student> list = HTTPHelper.getList(Student.class); System.out.println(list.size()); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getUserName()); } // 对象 转 Json字符串 Student stu = new Student(); stu.setAge(45); stu.setBirthDay(new Date()); List<String> hobbiy = new ArrayList<String>(); hobbiy.add("唱歌");hobbiy.add("跳舞");hobbiy.add("爬山"); stu.setHobbiy(hobbiy); stu.setUserName("张三"); System.out.println(HTTPHelper.getJsonString(stu)); // 对象 转 com.alibaba.fastjson.JSONObject对象 com.alibaba.fastjson.JSONObject jsonObj = HTTPHelper.getJson(stu); System.out.println(jsonObj.getString("userName")); //数组对象 转 Json字符串 List<Student> listStudent = new ArrayList<Student>(); listStudent.add(stu); System.out.println(HTTPHelper.getJsonArrayString(listStudent)); } }
使用的主要jar包:
fastjson-1.2.5.jar
json-lib-2.4-jdk15.jar
相关推荐
FastJson是阿里巴巴开源的一款高性能的JSON库,它主要用于Java对象与JSON字符串之间的转换。在这个小例子中,我们将深入探讨FastJson的使用方法,以及它如何帮助开发者在Android开发中快速处理JSON数据。 在Android...
Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它提供了非常快速的JSON到Java对象以及Java对象到JSON字符串的转换能力。在处理JSON数据时,Fastjson因其简单易用、性能优异而备受开发者喜爱。在本文中,我们将...
总结来说,org.json适合简单的JSON操作,而Gson和FastJson则提供了更丰富的功能,如直接映射到Java对象。Gson易于使用,而FastJson在性能上有优势。选择哪种库取决于项目的具体需求,如性能、易用性或对Java对象的...
本文将深入探讨三种广泛使用的JSON解析库:原生的`json`库,阿里巴巴的`fastjson`,以及Google的`gson`。 ### 1. 原生`json`库 Android系统内建了一个简单的`org.json`库,提供基本的JSON操作。它包括`JSONObject`...
以下是一个简单的例子,展示如何使用FastJson将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import ...
通过以上实例,你可以了解Fastjson的基本用法,包括对象、数组的转换,JSON字符串的解析与构建,以及JSONPath和JSON Schema的使用。在实际项目中,结合这些知识点,你可以灵活地处理JSON数据。记住,实践是最好的...
快速JSON(Fastjson)是阿里巴巴开发的一个高性能的Java JSON库,它能解析JSON格式的数据,并将其转换为Java对象,反之亦然。Fastjson以其高效、轻量级的特点,在Java开发中广泛应用于数据交换和序列化场景。这个...
在JSON序列化过程中,有时我们需要将Java对象转换成JSON字符串,Fastjson是一个高效且功能丰富的JSON库,由阿里巴巴开发并维护。然而,默认情况下,当Java对象中的某个属性值为`null`时,Fastjson在生成JSON字符串时...
同样,FastJSON也支持将Java对象转换为JSON字符串: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.serializer.SerializerFeature; ...
Java Fastjson是阿里巴巴提供的一款高性能的JSON库,它主要用于处理JSON与Java对象之间的转换,使得在Java程序中处理JSON数据变得更加便捷。Fastjson以其高效、轻量级的特点,在Java开发中广泛应用,尤其在Web服务、...
Gson的`fromJson()`方法接收一个JSON字符串和目标类的Class对象,然后将JSON转换为对应的JavaBean实例。 除了Gson之外,其他的库如Jackson和Fastjson也有类似的API,但使用方法略有不同。例如,使用Jackson,我们...
1. **序列化(对象转 JSON)**:将 Java 对象转换为 JSON 字符串是 FastJson 最基本的功能。例如,我们有一个 User 类,可以这样转换: ```java import com.alibaba.fastjson.JSON; public class User { private ...
总的来说,Java中构造JSON对象主要通过Gson、Jackson和Fastjson等库实现,它们能方便地将Java对象转换为JSON格式,便于数据交换。在实际开发中,根据项目需求和性能考虑,可以选择适合的库进行JSON操作。
在实际应用中,FastJson可以用来将复杂的Java对象转换成JSON格式的字符串,或者将JSON格式的字符串转换成相应的Java对象。这种转换能力是非常强大的,因为它允许开发者在Java后端与各种前端框架之间进行灵活的数据...
总的来说,Spring MVC结合Fastjson可以方便地处理JSON数据的转换和返回,尤其对于处理复杂对象结构和循环引用的情况,Fastjson的性能和灵活性使其成为一种优秀的选择。同时,通过灵活配置Fastjson的序列化特性,可以...
Gson的`fromJson`方法会将JSON字符串转换为指定类型的Java对象。 5. **利用类型Adapter**:Gson允许自定义`TypeAdapter`,对特定类型的数据进行定制化解析,比如日期格式、自增ID等,提高解析效率。 6. **避免过度...
总结来说,Fastjson作为一个强大的JSON处理工具,它的主要功能是Java对象与JSON数据之间的转换,极大地简化了开发人员处理JSON数据的工作。了解和熟练使用Fastjson对于任何Java开发者来说都是一项重要的技能,特别是...
无论是将Java对象数组转换为JSON,还是将JSON转换为Java对象数组,掌握这些转换技巧对于处理Web服务、API请求响应、数据持久化等方面都是非常有帮助的。此外,熟悉各种可用的库及其特性,可以帮助开发者根据项目具体...
在Java中,我们可以使用多种库来实现JSON的生成,如Gson和FastJson。 **Gson库** Google开发的Gson库提供了强大的功能,能够将Java对象转换为JSON字符串,反之亦然。使用Gson,你可以轻松地将Java对象序列化为JSON...
`JSONObject`代表一个JSON对象,可以通过构造函数接收一个字符串来创建。例如: ```java String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; JSONObject jsonObject = new JSONObject...