google的东西向来以简洁唯美gson也是如此:
private static Gson gson = new GsonBuilder().setDateFormat(
"yyyy-MM-dd HH:mm:ss").disableHtmlEscaping().create();
接下来:
return gson.toJson(src);
return gson.fromJson(json, clazz);
分别是变成json或者来自json,是不是相当简单?
不过在使用当中也发现一些问题,当然也许是我不会用,就是fromjson有些问题,主要来自于:
new TypeToken<List<Long>>
在fromJson时需要指定类型,如果不指定类型,对于复杂对象转换不指定类型就会报错的,实际上按照我的理解,完全可以理解gson为String和String和Collection(String)转换(注意json中其实还是有数字类型的,这里只是方便期间我觉得这么搞),但是很可惜gson是不会自动调用对象的toString的,也因此必须要指定类型,但这样对bean就会有一个重大限制,比如你的bean中所有对象的类型是要统一的,比如:
type = new TypeToken<Map<String, String>>() {
}.getType();
这里构造了一个一个json到string,string的map对象,然后再通过beanutil得到bean
type = new TypeToken<List<Map<String, String>>>() {
}.getType();
List<T> ret = new ArrayList<T>();
List<Map<String, String>> tempObj = gson.fromJson(json, type);
for (Map<String, String> item : tempObj) {
try {
T obj = clazz.newInstance();
for (String key : item.keySet()) {
String value = item.get(key);
BeanUtils.setProperty(obj, key, value);
}
ret.add(obj);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个方法看起来有点sb但是似乎试了半天也只能如此,不知道是不是我文档没有详尽的原因,这个留在以后再找答案了.
分享到:
相关推荐
非常详细的json使用方法。包括对象和json之间的相互转换,集合和json之间的相互转换,自己按照节点解析。gson功能真的很强大。
android Gson使用实例 注释详细
Gson的基本使用,特点:a、快速、高效b、代码量少、简洁c、面向对象d、数据传递和解析方便
maven项目中gson使用方法.pdfmaven项目中gson使用方法.pdf
Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...
gson使用.docgson使用.docgson使用.doc
使用Gson解析Json和Json数组,通俗易懂
Gson基本使用,数据容错处理 适配boolean、Boolean、int、Integer、float、Float、double、Double、long、Long、String类型。 还包括服务器返回的restful规范数据。
使用gson解析json的一次测试使用
介绍: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. 压缩包里有以下文件: ...
om.google.code.gson/gson/2.6.2 Gson maven依赖 java 开发包
Gson解析xml最强大的最方便的工具
一个例子快速掌握Gson的基本使用方法 an example showing how to use Gson to accelerate development 对应的博客地址:http://blog.csdn.net/leoleohan/article/details/50886707
Android Studio下使用Google Gson解析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文档-中文...
用户列表对象,使用JSONObject jsonStu = JSONObject.fromObject(list); 就会报错,因为对于嵌套类型的json它是解释不出来的,这时就需要用到com.google.gson.Gson.jar了。资源中提供了jar包与代码示例,一句代码...
com.google.gson.Gson 2.8.1 2.8.2 jar包 gson,直接解压到maven仓库,或者提取里面的jar包都可以使用
原生态打造android中获取json数据和解析json数据的例子。使用的android中自带的gson,不过可能会不稳定有时候
Google开源项目gson使用教程,可以轻松的将list、map等转化为json
赠送jar包:gson-2.8.7.jar; 赠送原API文档:gson-2.8.7-javadoc.jar; 赠送源代码:gson-2.8.7-sources.jar; 赠送Maven依赖信息文件:gson-2.8.7.pom; 包含翻译后的API文档:gson-2.8.7-javadoc-API文档-中文...