- 浏览: 694413 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (270)
- Ant Tool Script (12)
- XMLDigest (5)
- MyEclipse8.6 (1)
- RedHat (5)
- SVNVersionController (4)
- BatOperation (6)
- JspAndFaceWeb (66)
- javaSwing (18)
- PHP (12)
- J2SE (6)
- TestToolAndTestManual (12)
- C# (34)
- Java PatternDesign (20)
- Axis2AndWebService (5)
- ITLive (2)
- DBAndControl (10)
- C/C++ (8)
- Andriod (7)
- Python (7)
- JavaWork (16)
- Android-QA (1)
- Apache-Wicket (1)
- POI (1)
- JQuery (2)
- Struts2 (1)
- Flex&Flash (6)
- sdsdsd (0)
- 1212 (0)
最新评论
-
anayomin:
对九楼继续改进
public static <T> ...
Java List 分页 -
H4X0R:
来学习学习,赞一个
Aqua Data Studio 导出SQL -
yankai0219:
现在出现这个错误 Fatal error: Class 'PH ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
yankai0219:
您好,我在搭建环境中提示PHPUnit_Framework_T ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
wilsonchen:
chenhailong 写道wilsonchen 写道chen ...
C# RSA和Java RSA互通
一切源于尘土,一切归于尘土,事事有原因就有结果,不要在乎结果是什么,享受其中的过程最重要
-----chenhailong
JavaJson的工具很多,现在主要流行的有Jackson,Gson,JsonSimple
我这里主要比较这三种。
Jackson发展的还算顺利,官网:http://jackson.codehaus.org/
官网上的信息不是太多,但也够用了。
Jackson官网很大胆的说了高性能Json转换工具,嘿嘿,我感觉性能上确实不错,大量测试中Jackson给的状态还算不错的哦。不过没有JsonSimple快,我们一会再说
官网上给出了
- Streaming (reading, writing)
- FAST (measured to be faster than any other Java json parser and data binder)
- Powerful (full data binding for common JDK classes as well as any Java bean class, Collection, Map or Enum)
- Zero-dependency (does not rely on other packages beyond JDK)
- Open Source (LGPL or AL)
- Fully conformant
- Extremely configurable
1.流操作
2.快捷
3.强大
4.零依赖(还算可以,不过接下来我介绍的都是零依赖)
5.开源(我喜欢开源)
6.简单
7.极限配置
Gson 是google出的Json 解析工具
官网:http://code.google.com/p/google-gson/
不能说是官网,现在这个工具,还没有成为系统,可以说维护上有差距。至于性能上,可以说是非常的低了。
User Guide
https://sites.google.com/site/gson/gson-user-guide
Jsonsimple
官网:http://code.google.com/p/json-simple/
也是没有正规的组织者维护的项目,不过性能上,可以说是非常的棒,我比较推荐这个
下面看看比较代码的实现
package com.bean; import java.util.ArrayList; import java.util.List; import org.codehaus.jackson.annotate.JsonAutoDetect; import org.codehaus.jackson.annotate.JsonProperty; @JsonAutoDetect public class User { @JsonProperty private int age = 29; @JsonProperty private String name = "chenhailong"; @JsonProperty private List<String> messages = new ArrayList<String>(); public User() { for (int i = 0; i < 10000; i++) { messages.add("msg"); } } @Override public String toString() { return "User [age=" + age + ", name=" + name + ", " + "messages=" + messages + "]"; } }
Gson 代码
package com.gson; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.Date; import com.bean.User; import com.google.gson.Gson; public class GsonRead { public static void main(String[] args) { Gson gson = new Gson(); try { Date startDate = new Date(); BufferedReader br = new BufferedReader(new FileReader("user.json")); User obj = gson.fromJson(br, User.class); Date endDate = new Date(); // display to console System.out.println(endDate.getTime() - startDate.getTime()); } catch (IOException e) { e.printStackTrace(); } } }
package com.gson; import java.io.FileWriter; import java.io.IOException; import java.util.Date; import com.bean.User; import com.google.gson.Gson; public class GsonWirte { public static void main(String[] args) { Date startDate = new Date(); User obj = new User(); Gson gson = new Gson(); String json = gson.toJson(obj); try { FileWriter writer = new FileWriter("user.json"); writer.write(json); writer.close(); Date endDate = new Date(); // display to console System.out.println(endDate.getTime() - startDate.getTime()); } catch (IOException e) { e.printStackTrace(); } } }
Jackson的代码
package com.jackson; import java.io.File; import java.io.IOException; import java.util.Date; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import com.bean.User; public class JSonRead { public static void main(String[] args) { ObjectMapper mapper = new ObjectMapper(); try { Date startDate = new Date(); // read from file, convert it to user class User user = mapper.readValue(new File("user.json"), User.class); Date endDate = new Date(); // display to console System.out.println(endDate.getTime() - startDate.getTime()); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
package com.jackson; import java.io.File; import java.io.IOException; import java.util.Date; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import com.bean.User; public class JSonWirte { public static void main(String[] args) { User user = new User(); ObjectMapper mapper = new ObjectMapper(); try { Date startDate = new Date(); mapper.writeValue(new File("user.json"), user); // System.out.println(mapper.writeValueAsString(user)); Date endDate = new Date(); System.out.println(endDate.getTime() - startDate.getTime()); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Jsonsimple的代码
package com.jsonsimple; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Date; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JsonSampleRead { public static void main(String[] args) { JSONParser parser = new JSONParser(); try { Date startDate = new Date(); Object obj = parser.parse(new FileReader("user.json")); JSONObject jsonObject = (JSONObject) obj; Date endDate = new Date(); System.out.println(endDate.getTime() - startDate.getTime()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } }
package com.jsonsimple; import java.io.FileWriter; import java.io.IOException; import java.util.Date; import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class JsonSampleWirter { public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name", "mkyong.com"); obj.put("age", new Integer(100)); JSONArray list = new JSONArray(); for (int i = 0; i < 10000; i++) { list.add("msg 1"); } obj.put("messages", list); try { Date startDate = new Date(); FileWriter file = new FileWriter("user.json"); file.write(obj.toJSONString()); file.flush(); file.close(); Date endDate = new Date(); System.out.println(endDate.getTime() - startDate.getTime()); } catch (IOException e) { e.printStackTrace(); } } }
比较结果
读的方面: Jsonsimple > Jackson > Gson
写的方面:Jsonsimple > Jackson > Gson
下面提供功能,大家也可以尝试一下
- JavaJSon.zip (25.1 KB)
- 下载次数: 4
发表评论
-
Spring
2012-12-12 17:19 01212121211111111111111111111111 ... -
Search directory recursive file
2012-12-04 15:59 0import java.io.File; import ... -
常用的正则表达式
2012-11-22 13:18 1089Java 正则表达式的工具类 publi ... -
JavaIO
2012-08-20 14:03 1106public class CreateFileSa ... -
Convert java OutputStream to InputStream
2012-08-01 15:01 1927今天看到一个很经典的代码,主要是我不没这样用过,所以在这里备份 ... -
Java 解析和转化 Base64位字符串的两种方案
2012-05-30 11:46 9350Java解析和转化64位字符串是有两种方式的 1.Ja ... -
解决系统不识别IP问题
2012-05-03 13:42 1122今天遇到了一个问题,发现系统不识别IP地址的主机名字 ... -
netbeans 界面变英文和添加插件的操作
2012-04-27 09:02 1239netbeans 语言变成英文的 修改如下 net ... -
Java 得到文件行数
2012-03-14 14:34 4284代码如下: public int count(S ... -
HTML 5 Canvas API
2011-11-30 10:03 1844Canvas API 是HTML 5 最新增加的功能 ... -
CKEditor 搭建
2011-11-26 23:13 1040CKEdidor是web的HTML 编辑器 很简单 也 ... -
Memory leak调查
2011-11-26 22:49 1148什么叫Memory leak 翻译过来就是内存泄漏的意思。 ... -
HTML 5 学习和探究一(待。。。。)
2011-11-23 15:53 11632011-11-23 晴 大连日子过的真是快啊,一晃,有过了一 ... -
StringExpressToBooleanLogic(Copyright)
2011-08-23 21:23 1254My Dears: 亲们: みなさん: 写这篇文章不容易 ... -
Spring 2.X 深入了解 ------->Resource操作和Validator
2011-08-22 13:06 1395Spring的 Resource 接口是为了提供更强的 ... -
OpenJPA-MySQL 操作
2011-06-28 09:12 2565package com.jpa.chenhailong; ... -
Spring 2.X 深入了解 ------->Bean的基本操作
2011-06-08 19:55 1349Spring Framework Module 1.Co ...
相关推荐
Java服务端生成JSON是Web应用开发中的常见任务,主要用于数据交换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以使用多种库来...
总结,使用Java生成JSON文件和Word文档需要理解数据序列化(如JSON)的概念,以及使用相关库(如Jackson和Apache POI)提供的API。通过这些库,你可以轻松地将Java对象转换为可读的JSON格式,或创建结构化的Word文档...
Java 后台生成 JSON 数据是现代 Web 应用开发中的常见任务,特别是在与前端框架如 EXT 进行数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析...
2. **通过JSONObject生成json串** 如果你已经有了一个Map对象,你可以创建一个`JSONObject`,然后使用`toJSONString()`方法将其转换为JSON字符串。例如: ```java Map, Object> map = new HashMap(); map.put(...
本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...
1. **选择库**:选择适合的Java库,例如`com.github.fge:json-schema-generator`,它提供API来将Java Bean生成Json Schema。 2. **添加依赖**:在项目中引入库的Maven或Gradle依赖。 3. **编写Java Bean**:根据需求...
由此,在开源代码有老外使用Java生成JSON代码,本例子是翻写老外的开源例子,在使用部分有非常详细的注释说明,是学习使用Java封装客户端对象的好例子。 环境:Window XP professional, Ant 1.7, JDK 1.6 注意:本...
在实际开发中,还可能涉及到JSON的复杂类型处理,如处理嵌套结构、自定义序列化器、处理日期时间格式等,这些都是Java生成JSON时可能遇到的问题。通过不断学习和实践,开发者可以熟练掌握这些技能,提高开发效率。
它包括一个解析器(Parser)用于读取JSON,一个生成器(Generator)用于写入JSON,以及一个模型(Model)来表示JSON结构。 4. JSON-B(Java Bindings for JSON-B):这是另一个Java标准API,类似于Gson,但遵循JSR ...
标题 "pb解析与生成json" 涉及到的技术主要围绕着ProtoBuf(Protocol Buffers)和JSON这两种数据序列化格式。ProtoBuf是由Google开发的一种高效的数据交换的序列化协议,而JSON则是一种轻量级的数据交换格式,广泛...
标题提到的“java生成和解析json所用到的jar包”可能指的是如Jackson、Gson、org.json等流行的Java JSON库。 Jackson是Java中非常流行的一个JSON库,它提供了高效的性能和丰富的功能。使用Jackson,你可以通过`...
在Java环境中,`TreeHelper`可能包含了生成JSON树型数据的函数,而`Tree`类可能是用于处理和展示树型数据的核心组件。 总的来说,生成JSON树型表结构是将层级数据转换为易于EXT树组件解析的格式,通过合理的数据库...
在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...
标题提到的“生成json数据需要的jar包”就是指用于处理JSON的Java库的JAR文件。 在Java中,常见的JSON处理库有以下几种: 1. **Jackson**: Jackson是目前最流行的Java JSON库之一,它提供了一个高效且功能丰富的...
1.一款将java对象转成json或是将json转成java对象的jar文件; 2.在网上找了半天才找到,希望大家共享; 3.使用方法,大家在网上随便找,很多,很简单,一看便会; 4.此包在eclipse中和AndroidStudio中都可以用,但是,你如果...
JSON库在Java中通常是用来解析和生成JSON字符串的,而这个`java-json.jar`则提供了额外的功能,即XML到JSON以及JSON到XML的转换。这种转换在处理来自不同系统的数据时非常有用,尤其是当一个系统使用JSON,而另一个...
本篇文章将深入探讨如何在Java环境下生成JSON数据。 首先,我们需要引入一个JSON库。在Java社区中,常用的JSON库有Jackson、Gson和org.json等。这里我们以Jackson库为例,因为它提供了丰富的API,能够方便地进行...
在处理大量JSON数据时,手动创建对应的JavaBean类会非常耗时,因此出现了“根据json串自动生成JAVA BEAN工具”。 这类工具的主要功能是解析JSON字符串,并自动生成符合Java Bean规范的类,这样开发者就可以方便地将...
总结起来,这个Java JSON生成工具的主题为我们提供了一个实战性的学习机会,通过比较自编和教师版本的工具,我们可以深化对JSON处理的理解,学习如何评估和选择适合的工具,同时也能提升我们的代码审查和代码优化...