`
gaozzsoft
  • 浏览: 426936 次
  • 性别: 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性能较好,速度较快。

 

分享到:
评论

相关推荐

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    JSON与JAVA对象之间的转换

    这里我们将重点讨论两种常用的库:Gson和Jackson,它们都提供了方便的方法来实现JSON与Java对象之间的转换。 1. Gson库 Gson是Google提供的一个开源库,它允许将Java对象转换为对应的JSON字符串,反之亦然。使用...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    是开源库Apache Commons的一个组件,提供了Java对象与JSON对象之间的转换功能。下面将详细阐述如何使用`JSONObject`进行JSON操作。 ### 1. 解析JSON字符串 当你从服务器获取或从文件读取到一个JSON字符串时,可以...

    使用第三方工具将各种对象转成json格式

    将Java对象转换为JSON格式是常见的数据处理需求,借助第三方库,如Jackson、Gson和Fastjson,可以轻松实现这一目标。在选择库时,应根据项目需求和团队熟悉度进行权衡,同时注意处理好复杂对象和异常情况,确保代码...

    JSON 转化为java对象

    #### 三、技术实现:JSON 转 Java 对象的方法 **1. 使用第三方库** 市场上有许多成熟的第三方库可以帮助开发者轻松实现 JSON 与 Java 对象之间的转换,如 Jackson、Gson 和 Fastjson 等。 **2. 自定义转换器** ...

    Java对象与Json之间的互相转换的jar包

    在处理JSON数据时,我们通常需要将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象。这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、...

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

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

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

    一个 Java 序列化/反序列化库,用于将 Java 对象转换为 JSON 并转回格森Gson 是一个 Java 库,可用于将 Java 对象转换为 JSON 表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。Gson 可以处理任意 Java ...

    gson java对象与json转换(实例代码说明及教程)

    Gson是Google开源的一个Java库,它的主要功能是将Java对象转换为它们对应的JSON字符串,同时也能将JSON内容解析回等效的Java对象。Gson库的使用简单,性能高效,使得JSON处理变得更加便捷。 二、Gson的使用 1. 添加...

    java 和 json 对象间转换

    在Java中处理JSON数据主要依靠一些第三方库,json-lib是其中之一,它能够将Java对象转换成JSON格式的数据,也可以实现从JSON格式数据到Java对象的反向转换。 json-lib库支持将Java中的多种对象转换为JSON,包括...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    Java作为一种常用的后端开发语言,需要处理这些JSON数据,将其转化为Java对象以便于操作。本主题主要关注如何使用`net.sf.json.JSONObject`这个库将多层集合嵌套的JSON数据转换为Java对象。 `...

    Java对象和JSON互转换利器-Gson

    Gson是Google提供的一个开源库,专门用于在Java对象和JSON数据之间进行无缝转换。它以其强大、灵活和高效而备受赞誉,尤其在处理复杂的Java对象时。 Gson库的核心功能在于其`Gson`类,它提供了`toJson()`和`from...

    一个Java序列化反序列化库,用于将Java对象转换为JSON和返回JSON.zip

    Gson是Google提供的一个开源库,它能够将Java对象转换为JSON字符串,同时也能将JSON文本解析回等效的Java对象。Gson库的强大之处在于其灵活性和易用性,开发者无需编写大量的适配代码,就能实现Java对象和JSON之间的...

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

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

    json-java对象转换包

    在Java中,为了方便地将Java对象转换为JSON格式以及将JSON字符串解析为Java对象,通常会使用特定的库,如"json-java对象转换包"所提及的json-lib。json-lib是一个Java库,它提供了将Java对象转换为JSON格式,以及将...

    java 对象与json字符串互相转换工具类

    Java提供了多种库来实现对象与JSON的互转,如Jackson、Gson、Fastjson等。这里我们将主要讨论这些工具类的使用方法以及它们在处理对象到JSON字符串和反向转换时的关键知识点。 1. Jackson库: Jackson是Java中非常...

    java json格式化的两种方式(csdn)————程序.pdf

    Gson是Google开发的一款开源的Java库,用于将Java对象转换为JSON格式的字符串。使用Gson库可以轻松地将Java对象转换为JSON格式的字符串。 下面是一个使用Gson库将Java对象转换为JSON格式的字符串的示例代码: ```...

    jackson-java对象解析为json

    在本文中,我们将深入探讨Jackson如何将Java对象解析为JSON,以及如何配合Ajax进行数据交换。 1. Jackson简介: Jackson是由 FasterXML 组织开发的开源库,它提供了多种API,如 ObjectMapper、JsonParser 和 ...

    java 所有的json包

    - **序列化和反序列化**:将Java对象转换成JSON字符串,或者将JSON字符串还原成Java对象,这是JSON处理的核心功能。 - **操作JSON对象**:你可以添加、删除、修改JSON对象的键值对,或者遍历和访问JSON数组的元素。...

    java转json测试项目(附带json jar包)

    在这个“java转json测试项目”中,我们主要关注的是如何将Java对象转换为JSON格式,以及使用两种不同的JSON库——阿里巴巴的FastJSON和开源的json-lib(通过其子包net.sf.json.JSONObject)进行操作。 首先,...

Global site tag (gtag.js) - Google Analytics