在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。
我在网上看了一些开源的JSON框架,比如Google提供的Gson,Jackson,FastJson等框架。
经过测试,个人觉得FastJson执行效率比较高,而且简单易用。
FastJson不依赖于第三方包, 直接可以运行在Java JDK1.5之上,FastJson完全支持http://json.org的标准,支持各种JDK类型,包括基本类型、JavaBean、Collection、Map、Enum、泛型等
还支持循环引用。
FastJson项目是开源的:Fastjson代码托管在github.org上,项目地址是 https://github.com/AlibabaTech/fastjson
一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。
一。简单的序列化
pubic class UserInfo implements Serializable{ private String name; private int age; public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setAge(int age){ this.age=age; } public int getAge(){ return age; } } public class TestOne{ public static void main(String[] args){ UserInfo info=new UserInfo(); info.setName("zhangsan"); info.setAge(24); //将对象转换为JSON字符串 String str_json=JSON.toJSONString(info); System.out.println("JSON="+str_json); } }
二.复杂的数据类型
public static void test2() { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("username", "zhangsan"); map.put("age", 24); map.put("sex", "男"); //map集合 HashMap<String, Object> temp = new HashMap<String, Object>(); temp.put("name", "xiaohong"); temp.put("age", "23"); map.put("girlInfo", temp); //list集合 List<String> list = new ArrayList<String>(); list.add("爬山"); list.add("骑车"); list.add("旅游"); map.put("hobby", list); /*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String jsonString = JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);] *fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。 */ String jsonString = JSON.toJSONString(map); System.out.println("JSON=" + jsonString); }
三.反序列化
public void test3(){ String json="{\"name\":\"chenggang\",\"age\":24}"; //反序列化 UserInfo userInfo=JSON.parseObject(json,UserInfo.class); System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge()); } /**泛型的反序列化*/ public static void test4(){ String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}"; Map<String, UserInfoBean> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfoBean>>(){}); System.out.println(map.get("user")); }
//同理, json字符串中可以嵌套各种数据类型。
四.日期格式化
public void test5(){ Date date=new Date(); //输出毫秒值 System.out.println(JSON.toJSONString(date)); //默认格式为yyyy-MM-dd HH:mm:ss System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat)); //根据自定义格式输出日期 System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat)); }
这里举了几个简单的例子, 其它特殊要求可以根据FastJson的方法的说明,进行选择。
来自:http://blog.csdn.net/yuanjian19900610/article/details/37737087
相关推荐
使用 fastJSON 非常简单。首先,需要将 fastJSON 组件添加到项目中,然后可以使用 fastJSON 的实例来序列化和反序列化数据。 ```csharp namespace test { class Program { static void Main(string[] args) { ...
3. **简单易用的API**:Fastjson提供了简洁的API接口,使得开发者可以快速上手。例如,使用`JSON.toJSONString()`可将Java对象转成JSON字符串,`JSON.parseObject()`则可将JSON字符串转换为Java对象。 4. **类型...
在这个小例子中,我们将深入探讨FastJson的使用方法,以及它如何帮助开发者在Android开发中快速处理JSON数据。 在Android应用开发中,JSON是一种常见的数据交换格式,用于在服务器和客户端之间传递数据。FastJson以...
通过以上介绍,我们对Fastjson的基础使用有了深入了解,无论是简单对象还是复杂结构,都能游刃有余地进行序列化和反序列化操作。在实际开发中,掌握Fastjson能极大地提高我们的开发效率和代码质量。请参考提供的`...
Fastjson的使用非常简单且高效,使得数据交换和序列化变得更加便捷。Fastjson的特性包括: 1. **快速**:Fastjson在性能上优于其他同类库,如Jackson和Gson。 2. **简单**:它的API设计直观易用,只需几行代码就能...
总的来说,SpringBoot 2.0结合Fastjson的使用,极大地提高了JSON处理的效率和便捷性,使得在开发过程中,数据交换变得更加简单和高效。在实际项目中,开发者可以根据需求进一步优化配置,以适应各种复杂的JSON处理...
本文将深入探讨Gson和Fastjson的使用,以及它们各自的特点。 **Gson** Gson是由Google提供的一个开源库,它能够将Java对象转换为JSON字符串,反之亦然。Gson的优点在于其灵活性和易用性。下面是如何使用Gson的基本...
FastJSON 的使用非常简单,你可以使用 Maven repository 配置 FastJSON。在 pom.xml 文件中加入依赖:<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.14</version></...
无论是简单的对象转换,还是复杂的JSON操作,Fastjson都能提供高效且简洁的解决方案。在实际项目中,结合提供的API和示例代码(如`FastJsonDemo`),开发者可以快速上手并熟练掌握Fastjson的使用。
使用Gson库进行JSON操作非常简单,以下是一些基本用法: 1. 将对象转换为JSON字符串: ```java import com.google.gson.Gson; public class User { String name; int age; // getters and setters } User ...
### Fastjson 使用详解 #### 一、概述 Fastjson 是阿里巴巴开源的一款高性能的 JSON 序列化/反序列化库,旨在提供一个简单且快速的方式来处理 JSON 数据。它支持 Java 泛型、自定义序列化类、任意复杂对象以及预先...
### fastjson 使用详解 #### 一、概述 `fastjson` 是阿里巴巴开发的一款高性能的 JSON 库,主要用于 Java 对象与 JSON 字符串之间的互相转换。它提供了非常快速且轻量级的序列化和反序列化操作,在 Android 开发和...
本文将围绕Fastjson的核心特性、使用方法以及优化策略展开详细讲解。 一、Fastjson概述 Fastjson是阿里巴巴开源项目中的明星产品,它的主要功能是将Java对象转换为JSON字符串,反之也能将JSON字符串解析为Java对象...
本文将详细介绍如何在Android Studio中使用FastJSON进行JSON解析和生成。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,采用完全独立于语言的文本格式,...
FastJsonJar包是阿里巴巴开发的一款高性能的JSON解析和生成库,尤其在Java世界中被广泛使用。它提供了简单易用的API,使得开发者能够快速地进行JSON与Java对象之间的转换,极大地提高了开发效率。在本篇文章中,我们...
2. **基本用法**:以下是一个简单的示例,展示了如何使用Fastjson将JSON字符串转换为Java对象: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class Fastjson...
然而,值得注意的是,尽管FastJsonJar在性能上表现出色,但在某些特定场景下可能不如其他库如Gson或Jackson稳定,因此在实际使用时,应根据项目需求和具体场景选择合适的JSON库。 总的来说,FastJsonJar作为一款...
在这个实例中,我们将深入探讨如何使用Fastjson来解析复杂的JSON数据,并通过`JSONTest`这个示例代码来加深理解。 首先,让我们了解什么是JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,...
在实际使用中,开发者可以通过以下方式使用Fastjson: - 使用`JSON.parseObject(String jsonString, Class<T> clazz)`将JSON字符串转化为指定类型的Java对象。 - 使用`JSON.toJSONString(Object obj)`将Java对象转化...