Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了fastJson在java后台转换json格式数据探究(一)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

什么事@H_301_1@JSON?

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于@H_301_1@JavaScriptProgrAMMingLanguage,StandardECMA-@R_674_11277@3rdEdition-December1999一个子集。@H_301_1@JSON采用完全独立于语言的文本格式,但是也使用了类似于@H_301_1@C语言家族的习惯(包括@H_301_1@C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使@H_301_1@JSON成为理想的数据交换语言。

现在我们就来研究一下@H_301_1@fastJson

Fastjson是国内著名的电子商务互联网公司阿里巴巴内部开发的用于@H_301_1@java后台处理@H_301_1@json格式数据的一个工具包包括@H_301_1@“序列化@H_301_1@”@H_301_1@“反序列化@H_301_1@”两部分,它具备如下特征:

1@H_301_1@.速度最快,测试表明,@H_301_1@fastjson具有极快的性能,超越任其他的@H_301_1@javajsonparser包括自称最快的@H_301_1@jackson

2@H_301_1@.功能强大,完全支持@H_301_1@javabean、集合、@H_301_1@map、日期、@H_301_1@Enum支持范型,支持自省。

3@H_301_1@.无依赖,能够直接运行在@H_301_1@JavaSE5.0以上版本

4@H_301_1@.支持@H_301_1@Android

5@H_301_1@.开源@H_301_1@(Apache2.0)

这是@H_301_1@fastJson的网址:http://code.alibabatech.com/wiki/display/FastJSON/Overview

其中包含了@H_301_1@json数据处理的教程,@H_301_1@jar下载地址,@H_301_1@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,"name":"maks"}
    }

    /**
     * 反序列化为JavaBean对象
     */
    public void parseBeanObject()
    {
        String text = "{\"age\":105,\"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",105);
        JSONObject jsonObj = (JSONObject) JSON.toJSON(user);
        System.out.println("bean2Json()方法:jsonObj==" + jsonObj);
        // 输出结果:jsonObj=={"age":105,"name":"maks"}
    }

    /**
     * 全序列化 直接把java bean序列化为json文本之后,能够按照原来的类型反序列化回来。支持全序列化,需要打开serializerFeature.WriteClassName特性
     */
    public void parseJSONAndBeanEachother()
    {
        User user = new User("testFastJson001",105);
        serializerFeature[] featureArr = { serializerFeature.WriteClassName };
        String text = JSON.toJSONString(user,featureArr);
        System.out.println("parseJSONAndBeanEachother()方法:text==" + text);
        // 输出结果:text=={"@type":"fastJson.test.User","age":105,"name":"maks"}
        User userObj = (User) JSON.parse(text);
        System.out.println("parseJSONAndBeanEachother()方法:userObj==" + userObj.getId() + "," + userObj.getName() + "," + userObj.getAge());
        // 输出结果:userObj==testFastJson001,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,"name":"maks"}
parseJsonObject()方法:json=={"age":105,"name":"maks"}
parseBeanObject()方法:user==testFastJson001,105
bean2Json()方法:jsonObj=={"age":105,"name":"maks"}
parseJSONAndBeanEachother()方法:text=={"@type":"fastJson.test.User","name":"maks"}
parseJSONAndBeanEachother()方法:userObj==testFastJson001,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在java后台转换json格式数据探究(一)全部内容,希望文章能够帮你解决fastJson在java后台转换json格式数据探究(一)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。