- 浏览: 682661 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (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:
<div class="quote_title ...
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 1054Java 正则表达式的工具类 publi ... -
JavaIO
2012-08-20 14:03 1071public class CreateFileSa ... -
Convert java OutputStream to InputStream
2012-08-01 15:01 1865今天看到一个很经典的代码,主要是我不没这样用过,所以在这里备份 ... -
Java 解析和转化 Base64位字符串的两种方案
2012-05-30 11:46 9299Java解析和转化64位字符串是有两种方式的 1.Ja ... -
解决系统不识别IP问题
2012-05-03 13:42 1091今天遇到了一个问题,发现系统不识别IP地址的主机名字 ... -
netbeans 界面变英文和添加插件的操作
2012-04-27 09:02 1184netbeans 语言变成英文的 修改如下 net ... -
Java 得到文件行数
2012-03-14 14:34 4254代码如下: public int count(S ... -
HTML 5 Canvas API
2011-11-30 10:03 1797Canvas API 是HTML 5 最新增加的功能 ... -
CKEditor 搭建
2011-11-26 23:13 1002CKEdidor是web的HTML 编辑器 很简单 也 ... -
Memory leak调查
2011-11-26 22:49 1095什么叫Memory leak 翻译过来就是内存泄漏的意思。 ... -
HTML 5 学习和探究一(待。。。。)
2011-11-23 15:53 11242011-11-23 晴 大连日子过的真是快啊,一晃,有过了一 ... -
StringExpressToBooleanLogic(Copyright)
2011-08-23 21:23 1219My Dears: 亲们: みなさん: 写这篇文章不容易 ... -
Spring 2.X 深入了解 ------->Resource操作和Validator
2011-08-22 13:06 1360Spring的 Resource 接口是为了提供更强的 ... -
OpenJPA-MySQL 操作
2011-06-28 09:12 2532package com.jpa.chenhailong; ... -
Spring 2.X 深入了解 ------->Bean的基本操作
2011-06-08 19:55 1318Spring Framework Module 1.Co ...
相关推荐
java服务端生成json(json服务端),可以在浏览器上访问获取查看json,已测试通过
java转JSON串的几种方式: 1、将java对象转成json串 2、通过JSONObject生成json串 3、通过json字符串生成json串 代码通过阿里的fastjson包实现。
java后台生成JSON数据和EXT互传数据,全靠它实现。
========使用java代码生成json文件和word文档!=======
java开发生成json的jar包 java开发生成json的jar包
由此,在开源代码有老外使用Java生成JSON代码,本例子是翻写老外的开源例子,在使用部分有非常详细的注释说明,是学习使用Java封装客户端对象的好例子。 环境:Window XP professional, Ant 1.7, JDK 1.6 注意:本...
对象生成json字符串,根据字符串生成对象|list
1.一款将java对象转成json或是将json转成java对象的jar文件; 2.在网上找了半天才找到,希望大家共享; 3.使用方法,大家在网上随便找,很多,很简单,一看便会; 4.此包在eclipse中和AndroidStudio中都可以用,但是,你如果...
java写json时所要用到的jar包,生成的json格式详情可看我的博客文章
外国人用pb9.0开发的pb生成与解析json的例子,有源码,可以直接使用很清晰明了。
PB解析和生成JSON,解析JSON是否成功,生成默认JSON。
json报文的解析,写入数据库; 通过数据库取值,生成json报文
createJson.rar Java生成各种json格式数据 生成JSON数据:{"name":"zhagnsan","age":24} 生成JSON数据:[{"name":"zhangsan","age":24},{"name":"lisi","age":25},{"name":"wangwu","age":26}] 生成JSON数据:{...
java解析xml文件生成json对象,方便操作,下载后导入eclipse,加入相关的jar包后加载至类路径便可测试该工具类,很好用!!!
自己编写的通过java语言生成JSON数据格式。已经用于项目了,目前该项目中没有增加对JSON的解析部分!
生成json数据需要的jar包
自己写的java json 生成工具,lyz包下面的lyzjson是我自己写的,util包下面的JsonUtil是老师写的。看下谁的好用点。多提建议,谢谢。
Java递归算法构造JSON树形结构,Java递归算法构造JSON树形结构Java递归算法构造JSON树形结构
java对象生成json字符串实例(eclipse工程),生成的结果如下: {"stuList":[{"stuname":"stu_jack","stuno":"stu001"},{"stuname":"stu_jack2","stuno":"stu002"}],"teaname":"tea_jack","teano":"tea_001"} 自己可以...