`
gaozzsoft
  • 浏览: 413028 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

JAVA对象转成JSON的三种开源实现方式

 
阅读更多

第一种方式:Google的Gson


Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

示例代码:

Gson gson = new Gson();
int[] ints = {1, 2, 3, 4, 5};
String[] strings = {"abc", "def", "ghi"};

(Serialization)
gson.toJson(ints);     ==> prints [1,2,3,4,5]
gson.toJson(strings);  ==> prints ["abc", "def", "ghi"]

下载链接:

http://code.google.com/p/google-gson/downloads/list


第二种方式:Flexjson 



Flexjson 是一个将 Java 对象转成 JSON 的 类库,是一个深度转换的过程

示例代码:

public String doSomething( Object arg1, ... ) { 
  Person p = ...load a person...; 
  JSONSerializer serializer = new JSONSerializer(); 
  return serializer.serialize( p ); 
}

执行结果:

{ "class": "Person", "name": "William Shakespeare", "birthday": -12802392000000, "nickname": "Bill" }

下载链接:

http://sourceforge.net/projects/flexjson/files/


第三种方式:阿里巴巴的fastjson 


fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。

主要特点:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson
  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
  • 零依赖(没有依赖其它任何类库除了JDK)

示例代码:

 

import com.alibaba.fastjson.JSON;


Group group = new Group();

group.setId(0L);

group.setName("admin");


User guestUser = new User();

guestUser.setId(2L);

guestUser.setName("guest");


User rootUser = new User();

rootUser.setId(3L);

rootUser.setName("root");


group.getUsers().add(guestUser);

group.getUsers().add(rootUser);


String jsonString = JSON.toJSONString(group);


System.out.println(jsonString);

下载链接:

http://code.alibabatech.com/wiki/display/FastJSON/Download

 


三种方式代码实现如下:

//Google实现

Gson gson = new Gson();

String jsonStr = gson.toJson(student1);

System.out.println(jsonStr);

Student student3 = gson.fromJson(jsonStr, Student.class);

System.out.println(student3);

 

//Flexjson实现

JSONSerializer serializer = new JSONSerializer(); 

String jsonStr2 = serializer.serialize(student1); 

System.out.println(jsonStr2);

JSONDeserializer<Student> deserializer = new JSONDeserializer<Student>();

Student student2 = deserializer.deserialize(jsonStr2, Student.class);

System.out.println(student2);

 

//Alibaba实现 

String jsonString = JSON.toJSONString(student1);

System.out.println("alibaba json:::"+jsonString);

Student student = JSON.parseObject(jsonString, Student.class);

System.out.println(student);

imports:

 

import com.alibaba.fastjson.JSON;

import com.google.gson.Gson;

import flexjson.JSONDeserializer;

import flexjson.JSONSerializer;

 

 


三种实现方式性能对比:

 

FlexJson第一快、耗时最低,Google Gson第二快、耗时第二,Alibaba FastJson第三快、耗时最长

所以转换还是用FlexJson性能较好,速度较快。

 

分享到:
评论

相关推荐

    免费开源!!一个 Java 序列化/反序列化库,用于将 Java 对象转换为 JSON 并返回

    有一些开源项目可以将 Java 对象转换为 JSON。然而,大多数都要求您在类中放置 Java 注释;如果您无法访问源代码,则无法执行某些操作。大多数也不完全支持 Java 泛型的使用。Gson 认为这两个都是非常重要的设计目标...

    gson 使用Gson将Java对象转换为JSON

    Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...

    Java序列化/反序列化库,用于将Java对象转换为JSON并返回-Android开发

    google-gson Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。...有一些开源项目可以将Java对象转换为JSON。 但是,大多数方法都要求您在类中放置Java批注。 如果您没有访问权限,则无法执行的操作

    json-rpc-for-java

    继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...

    gson:一个Java序列化反序列化库,用于将Java对象转换为JSON并返回

    有一些开源项目可以将Java对象转换为JSON。 但是,大多数方法都要求您在类中放置Java批注。 如果您无法访问源代码,则无法执行某些操作。 大多数还不完全支持Java泛型的使用。 Gson认为这两个都是非常重要的设计...

    使用Java在服务器端生成JSON代码

    由此,在开源代码有老外使用Java生成JSON代码,本例子是翻写老外的开源例子,在使用部分有非常详细的注释说明,是学习使用Java封装客户端对象的好例子。 环境:Window XP professional, Ant 1.7, JDK 1.6 注意:本...

    java开源包6

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包10

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包8

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    使用GSON库将Java中的map键值对应结构对象转换为JSON

    GSON是由Google开发并开源的实现Java对象与JSON之间相互转换功能的类库,这里我们来看一下使用GSON库将Java中的map键值对应结构对象转换为JSON的示例:

    java开源包3

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包11

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    谷歌开源json解析库GSON

    谷歌开源json解析库GSON接口jar包,可以方便的将java对象转化为json字符串,也可以将json字符串转化为jave对象

    java开源包5

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包101

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包1

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

Global site tag (gtag.js) - Google Analytics