`
Java_Fan
  • 浏览: 81644 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

fastJson在java后台转换json格式数据探究(一)

 
阅读更多

什么事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;
	}
	
}

分享到:
评论

相关推荐

    很好用的JAVA类转JSON工具:FastJSON (2).pdf

    然后在`FastJson`类的`main`方法中,我们创建了一个`User`对象,并使用`JSON.toJSONString()`方法将其转换为JSON格式的字符串。这个方法会自动调用对象的getter方法来获取属性值,从而构建JSON字符串。 接下来,...

    java FASTJSON 解析复杂JSON实例源码

    Java中的Fastjson是一个高效、功能丰富的JSON库,由阿里巴巴开发并维护。它提供了一种简单的方式来序列化和反序列化Java对象,使得处理JSON数据变得轻而易举。在这个实例中,我们将深入探讨如何使用Fastjson来解析...

    通过fastjson实现各种格式与json之间的转换

    通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar

    fastjson,方便json转换

    实现json转换,fastjson json json转换,可以帮助开发中涉及json格式处理的程序猿。

    fastjson-jaxrs-json-provider-0.3.1-API文档-中文版.zip

    标签:jaxrs、fastjson、provider、json、colobu、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...

    Java四大json库gson+fastjson+jackson+json-lib

    在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端数据传输。为了方便地处理JSON数据,Java社区提供了多个优秀的JSON库,包括Gson、Fastjson、Jackson和json-lib。...

    Java中使用JSON格式数据工具类及使用说明

    在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们可以轻松地阅读和编写数据,同时也便于机器解析和生成。本资源“Java中使用JSON格式数据工具类及使用说明”提供了关于如何...

    使用fastjson实现对象和json串之间的相互转换的jar包

    在实际开发中,为了在项目中使用Fastjson,我们需要将"json格式转换依赖jar包"引入到构建工具(如Maven或Gradle)的依赖管理中。如果是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...

    封装 fastjson 的json格式化工具

    在这个类中,我们可以定义一个静态方法`formatJson(String jsonString)`,该方法接收一个未格式化的JSON字符串,然后利用Fastjson提供的API进行格式化处理。 ```java import com.alibaba.fastjson.JSON; import ...

    Java 实现Redis存储复杂json格式数据并返回给前端

    Fastjson库在这里被用到,其`toJSONString`方法可以将Java对象转化为JSON格式的字符串。获取时,直接返回JSON字符串,由前端解析。但这种方式只适用于简单的JSON数据,如果数据结构复杂,可能导致解析错误。 3. **...

    很好用的JAVA类转JSON工具:FastJSON.doc

    FastJSON 是一个 Java 类转 JSON 工具,具有简洁、快速和高效的特点,能够轻松将 Java 对象转换为 JSON 字符串,并且支持反向操作。 FastJSON 的主要特点是速度快、配置简单,只需一行代码即可将 Java 对象转换为 ...

    Java读取json文件并对json数据进行读取、添加、删除与修改操作

    开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。

    java服务端生成json(json服务端)

    1. JSON数据格式的理解及其在数据交换中的作用。 2. 使用Gson或FastJson库进行JSON序列化和反序列化。 3. 结合HTTP服务器框架处理JSON响应。 4. 调试和测试JSON服务,包括浏览器直接访问和使用工具如`curl`。 在...

    java处理JSON格式数据的通用类

    【Java处理JSON格式数据的通用类】是一种在Java中处理JSON数据的标准方法,它能够方便地接收和返回JSON数据,解决开发过程中与JSON交互的问题。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛...

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器

    Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。Fastjson 可以使用任意 Java 对象,包括您没有源代码的预先存在的对象。

    fastJson用于格式的转换

    下面将详细介绍FastJson在JSON格式转换中的应用及其相关特性。 1. JSON到Java对象转换 FastJson提供了一种简单的方法将JSON字符串解析为Java对象。例如,如果有一个JSON字符串`{"name":"John", "age":30}`,你可以...

    java使用fastJson处理复杂Json字符串,直接获取key对应的value值

    java使用fastJson处理复杂Json字符串,直接获取key对应的value值

    Java读取json文件,并转化为map取值

    在Java编程中,处理JSON数据是一项常见的任务,特别是在与服务器进行数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本教程将深入讲解...

    java解析json数据格式的jar包——fastjson!

    阿里巴巴的一款java解析json的jar包,fastjson,方便简单实用!

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `...

Global site tag (gtag.js) - Google Analytics