什么事JSON?
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。
现在我们就来研究一下fastJson。
Fastjson是国内著名的电子商务互联网公司阿里巴巴内部开发的用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
1).速度最快,测试表明,fastjson具有极快的性能,超越任其他的javajsonparser。包括自称最快的jackson。
2).功能强大,完全支持javabean、集合、Map、日期、Enum,支持范型,支持自省。
3).无依赖,能够直接运行在JavaSE5.0以上版本
4).支持Android。
5).开源(Apache2.0)
这是fastJson的网址:http://code.alibabatech.com/wiki/display/FastJSON/Overview
其中包含了json数据处理的教程,jar下载地址,example样例等。
下面给出fastJson处理json数据格式的代码样例:
package fastJson.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class FastJsonTest
{
/**
* 序列化
*/
public void toJsonString()
{
User user = new User("testFastJson001", "maks", 105);
String text = JSON.toJSONString(user);
System.out.println("toJsonString()方法:text=" + text);
// 输出结果:text={"age":105,"id":"testFastJson001","name":"maks"}
}
/**
* 反序列化为json对象
*/
public void parseJsonObject()
{
String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
JSONObject json = JSON.parseObject(text);
System.out.println("parseJsonObject()方法:json==" + json);
// 输出结果:json=={"age":105,"id":"testFastJson001","name":"maks"}
}
/**
* 反序列化为javaBean对象
*/
public void parseBeanObject()
{
String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
User user = (User) JSON.parseObject(text, User.class);
System.out.println("parseBeanObject()方法:user==" + user.getId() + "," + user.getName() + "," + user.getAge());
// 输出结果:user==testFastJson001,maks,105
}
/**
* 将javaBean转化为json对象
*/
public void bean2Json()
{
User user = new User("testFastJson001", "maks", 105);
JSONObject jsonObj = (JSONObject) JSON.toJSON(user);
System.out.println("bean2Json()方法:jsonObj==" + jsonObj);
// 输出结果:jsonObj=={"age":105,"id":"testFastJson001","name":"maks"}
}
/**
* 全序列化 直接把java bean序列化为json文本之后,能够按照原来的类型反序列化回来。支持全序列化,需要打开SerializerFeature.WriteClassName特性
*/
public void parseJSONAndBeanEachother()
{
User user = new User("testFastJson001", "maks", 105);
SerializerFeature[] featureArr = { SerializerFeature.WriteClassName };
String text = JSON.toJSONString(user, featureArr);
System.out.println("parseJSONAndBeanEachother()方法:text==" + text);
// 输出结果:text=={"@type":"fastJson.test.User","age":105,"id":"testFastJson001","name":"maks"}
User userObj = (User) JSON.parse(text);
System.out.println("parseJSONAndBeanEachother()方法:userObj==" + userObj.getId() + "," + userObj.getName() + "," + userObj.getAge());
// 输出结果:userObj==testFastJson001,maks,105
}
public static void main(String[] args)
{
FastJsonTest test = new FastJsonTest();
// 序列化
test.toJsonString();
// 反序列化为json对象
test.parseJsonObject();
// 反序列化为javaBean对象
test.parseBeanObject();
// 将javaBean转化为json对象
test.bean2Json();
// 全序列化
test.parseJSONAndBeanEachother();
}
}
控制台输出结果:
toJsonString()方法:text={"age":105,"id":"testFastJson001","name":"maks"}
parseJsonObject()方法:json=={"age":105,"id":"testFastJson001","name":"maks"}
parseBeanObject()方法:user==testFastJson001,maks,105
bean2Json()方法:jsonObj=={"age":105,"id":"testFastJson001","name":"maks"}
parseJSONAndBeanEachother()方法:text=={"@type":"fastJson.test.User","age":105,"id":"testFastJson001","name":"maks"}
parseJSONAndBeanEachother()方法:userObj==testFastJson001,maks,105
附:javaBean类User.java
package fastJson.test;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
private int age;
public User() {
super();
}
public User(String id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
分享到:
相关推荐
然后在`FastJson`类的`main`方法中,我们创建了一个`User`对象,并使用`JSON.toJSONString()`方法将其转换为JSON格式的字符串。这个方法会自动调用对象的getter方法来获取属性值,从而构建JSON字符串。 接下来,...
Java中的Fastjson是一个高效、功能丰富的JSON库,由阿里巴巴开发并维护。它提供了一种简单的方式来序列化和反序列化Java对象,使得处理JSON数据变得轻而易举。在这个实例中,我们将深入探讨如何使用Fastjson来解析...
通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
实现json转换,fastjson json json转换,可以帮助开发中涉及json格式处理的程序猿。
标签:jaxrs、fastjson、provider、json、colobu、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...
在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端数据传输。为了方便地处理JSON数据,Java社区提供了多个优秀的JSON库,包括Gson、Fastjson、Jackson和json-lib。...
在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们可以轻松地阅读和编写数据,同时也便于机器解析和生成。本资源“Java中使用JSON格式数据工具类及使用说明”提供了关于如何...
在实际开发中,为了在项目中使用Fastjson,我们需要将"json格式转换依赖jar包"引入到构建工具(如Maven或Gradle)的依赖管理中。如果是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
在这个类中,我们可以定义一个静态方法`formatJson(String jsonString)`,该方法接收一个未格式化的JSON字符串,然后利用Fastjson提供的API进行格式化处理。 ```java import com.alibaba.fastjson.JSON; import ...
Fastjson库在这里被用到,其`toJSONString`方法可以将Java对象转化为JSON格式的字符串。获取时,直接返回JSON字符串,由前端解析。但这种方式只适用于简单的JSON数据,如果数据结构复杂,可能导致解析错误。 3. **...
FastJSON 是一个 Java 类转 JSON 工具,具有简洁、快速和高效的特点,能够轻松将 Java 对象转换为 JSON 字符串,并且支持反向操作。 FastJSON 的主要特点是速度快、配置简单,只需一行代码即可将 Java 对象转换为 ...
开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。
1. JSON数据格式的理解及其在数据交换中的作用。 2. 使用Gson或FastJson库进行JSON序列化和反序列化。 3. 结合HTTP服务器框架处理JSON响应。 4. 调试和测试JSON服务,包括浏览器直接访问和使用工具如`curl`。 在...
【Java处理JSON格式数据的通用类】是一种在Java中处理JSON数据的标准方法,它能够方便地接收和返回JSON数据,解决开发过程中与JSON交互的问题。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛...
Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。Fastjson 可以使用任意 Java 对象,包括您没有源代码的预先存在的对象。
下面将详细介绍FastJson在JSON格式转换中的应用及其相关特性。 1. JSON到Java对象转换 FastJson提供了一种简单的方法将JSON字符串解析为Java对象。例如,如果有一个JSON字符串`{"name":"John", "age":30}`,你可以...
java使用fastJson处理复杂Json字符串,直接获取key对应的value值
在Java编程中,处理JSON数据是一项常见的任务,特别是在与服务器进行数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本教程将深入讲解...
阿里巴巴的一款java解析json的jar包,fastjson,方便简单实用!
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `...