参考资料
1 java中几个json工具分析测试【原】
http://blog.csdn.net/weinianjie1/article/details/6561788
2 两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)
http://wangym.iteye.com/blog/738933
基于上面文章所说,jackson的性能高于其它二个json库,但gson的使用方式对我们来说是最好理解的,仿照gson提供的二个方法,以下对jackson作了一个包装,另外有个org.json.jar包就没有用了,是对源代码进行打包的,也上传上来吧,以后可能用得上的
环境:XP+JDK1.6
版本:jackson-all-1.8.1.jar
工程图片如下:
JacksonFactory.java
package net.liuzd.json;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonFactory {
private static final ObjectMapper mapper = new ObjectMapper();
private JacksonFactory(){
}
/**
* @param <T> 泛型声明
* @param bean 类的实例
* @return JSON字符串
*/
public static <T> String toJson(T bean){
StringWriter sw = new StringWriter();
try {
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
mapper.writeValue(gen, bean);
gen.close();
return sw.toString();
} catch (JsonGenerationException e) {
throw new RuntimeException(e.getMessage(),e);
} catch (JsonMappingException e) {
throw new RuntimeException(e.getMessage(),e);
} catch (IOException e) {
throw new RuntimeException(e.getMessage(),e);
}
}
/**
* @param <T> 泛型声明
* @param json JSON字符串
* @param clzz 要转换对象的类型
* @return
*/
public static <T> T fromJson(String json,Class<T> clzz){
T t = null;
try {
t = mapper.readValue(json, clzz);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return t;
}
/**
* @param json JSON字符串,请保持key是加了双引号的
* @return Map对象,默认为HashMap
*/
public static Map<?,?> fromJson(String json){
try {
return mapper.readValue(json, HashMap.class);
} catch (JsonParseException e) {
throw new RuntimeException(e.getMessage(),e);
} catch (JsonMappingException e) {
throw new RuntimeException(e.getMessage(),e);
} catch (IOException e) {
throw new RuntimeException(e.getMessage(),e);
}
}
}
TestJson.java(测试类)
package net.liuzd.json;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class TestJson {
public static void main(String[] args) {
String json;
List<Book> books = new ArrayList<Book>();
Book b1 = new Book();
b1.setId(1);
b1.setName("book1");
Book b2 = new Book();
b2.setId(2);
b2.setName("book2");
books.add(b1);
books.add(b2);
Order order = new Order();
order.setBooks(books);
order.setCost(100.5f);
order.setName("orderName"); order.setDate(new Date(System.currentTimeMillis()));
json = JacksonFactory.toJson(order);
System.out.println("order: " + json);
order = JacksonFactory.fromJson(json, Order.class);
System.out.println(order.getName()+","+order.getCost() + "," + order.getDate());
for(Book b : order.getBooks()){
System.out.println(b.getId() + "," + b.getName());
}
Users bean = new Users("1","张三",23);
json = JacksonFactory.toJson(bean);
System.out.println(json);
Users bean2 = JacksonFactory.fromJson(json, Users.class);
System.out.println(bean2.getId() + "," + bean2.getUsername() + "," + bean2.getAge());
Map<?,?> map = JacksonFactory.fromJson("{\"a\":1, \"b\":2}");
System.out.println(map.get("a"));
System.out.println(map.get("b"));
json = JacksonFactory.toJson(map);
System.out.println(json);
}
}
输出结果如下:
order: {"name":"orderName","date":1318986605676,"cost":100.5,"books":[{"name":"book1","id":1},{"name":"book2","id":2}]}
orderName,100.5,Wed Oct 19 09:10:05 CST 2011
1,book1
2,book2
{"id":"1","username":"张三","age":23}
1,张三,23
1
2
{"b":2,"a":1}
其它的一些类就不写了吧!
工程中没有包含这二个jar,如下
- 大小: 16.2 KB
分享到:
相关推荐
Gson是Google开发的一款Java语言编写的库,用于在Java对象和JSON数据之间进行映射。这个库使得Java对象可以轻松地序列化成JSON格式,同时也可以从JSON字符串反序列化回Java对象。在Java开发中,Gson库非常常见,特别...
介绍:Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. 压缩包里有以下文件: ...
Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称是Google Gson,主要用于将Java对象转换为JSON格式的字符串,也可以将JSON字符串反序列化为对应的Java对象。在Java开发中,...
Gson,全称为Google Simple JSON,是Google提供的一款开源库,用于在Java对象和JSON数据之间进行映射。这个库使得Java开发者能够轻松地将JSON字符串转换为等效的Java对象,反之亦然。在Java应用程序中,Gson库特别...
包含以下java源文件: com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class com.google.gson.FieldAttributes.class com.google.gson.FieldNamingPolicy.class ...
Gson是Google开发的一款强大的Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON数据解析回等效的Java对象。这个压缩包包含了Gson库的版本2.8.1,它提供了两个主要的组件:`gson-2.8.1.jar`和`gson-2.8.1-...
GSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个JSON字符串...
赠送jar包:gson-2.8.0.jar; 赠送原API文档:gson-2.8.0-javadoc.jar; 赠送源代码:gson-2.8.0-sources.jar; 赠送Maven依赖信息文件:gson-2.8.0.pom; 包含翻译后的API文档:gson-2.8.0-javadoc-API文档-中文...
赠送jar包:gson-2.8.6.jar; 赠送原API文档:gson-2.8.6-javadoc.jar; 赠送源代码:gson-2.8.6-sources.jar; 赠送Maven依赖信息文件:gson-2.8.6.pom; 包含翻译后的API文档:gson-2.8.6-javadoc-API文档-中文...
json我们在网络请求中经常用到,最近最火的微信小程序开发中... 就会报错,因为对于嵌套类型的json它是解释不出来的,这时就需要用到com.google.gson.Gson.jar了。资源中提供了jar包与代码示例,一句代码解决您的问题。
Gson是Google推出的一款强大的Java库,主要用于在Java对象与JSON数据之间进行相互转换。它的全称是Google Simple JSON,自2008年发布以来,已经成为了Java开发者处理JSON数据的一个常用工具,尤其是在Android开发中...
Gson库是Google开发的一个Java库,用于在Java对象和JSON数据之间进行映射。它的全名是Google Simple JSON,其版本2.6.2在Android开发中被广泛使用,尤其是在处理JSON序列化和反序列化任务时。Gson库通过提供`Gson`类...
赠送jar包:gson-2.8.9.jar; 赠送原API文档:gson-2.8.9-javadoc.jar; 赠送源代码:gson-2.8.9-sources.jar; 赠送Maven依赖信息文件:gson-2.8.9.pom; 包含翻译后的API文档:gson-2.8.9-javadoc-API文档-中文...
gson-2.8.6.jar下载,gson是Google开发的一款优秀的Java JSON解析库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中...
Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...
截止至2018-11-27,github上com.google.gson.Gson 最新的2.8.5jar包。强大的json字符串解析功能及将字符串转换为json格式。我16年上传的免费下载的2.8.0版本不知道为什么变成下载需要50分了
Gson是Google开发的一个Java库,用于在Java对象和JSON数据之间进行映射。这个库使得Java对象可以被转换为JSON字符串,同时也可以将JSON文本解析回等效的Java对象。Gson-2.8.6.jar是这个库的特定版本,其中包含了所有...
使用Gson,你可以通过`Gson().toJson()`方法将Java对象转化为JSON字符串,通过`new Gson().fromJson()`方法将JSON字符串反序列化为Java对象。 例如: ```java Person person = new Person("John", "Doe"); String ...
标题"Google gson jar包"暗示了我们讨论的是Google Gson库的Java档案文件(JAR),它包含了所有必要的类和资源,使开发者能够在项目中直接使用Gson功能。JAR文件通常在Java开发中用于封装库,以便在应用程序中作为...