`
edwardpro
  • 浏览: 303702 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

gson使用感受

阅读更多

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但是似乎试了半天也只能如此,不知道是不是我文档没有详尽的原因,这个留在以后再找答案了.
分享到:
评论
4 楼 u010503822 2017-02-28  
不懂这个是否是你需要的
// map转Json数据  json转换map
private static void mapToJson() {
Map<String, String> map = new HashMap<String, String>();
map.put("id", "1");
map.put("name", "zhangsan");

Gson gson = new Gson();
String json = gson.toJson(map);
System.out.println(json);

HashMap<String, String> m = gson.fromJson(json, new TypeToken<HashMap<String, String>>(){}.getType());
Set<Entry<String,String>> entrySet = m.entrySet();
for (Entry<String, String> entry : entrySet) {
String k = entry.getKey();
String v = entry.getValue();
System.out.println(k+"===="+v);
}


}
3 楼 quaff 2009-06-24  
对field序列化而不是对getter序列化,这是个限制
2 楼 QMax 2009-06-24  
我们在项目中也试着用了一下,发现有个问题,如果是一个很长的String(大概1M多),在toJson的时候,因为要替换字符,会非常费资源,CPU基本就是100%,处理时间也很长。试了几个其他的Json第三方包,也都有类似的问题。
不知道有没有人有什么好办法。

1 楼 mikeandmore 2009-06-13  
和python的simplejson一样啊

相关推荐

    非常详细的gson使用方法

    非常详细的json使用方法。包括对象和json之间的相互转换,集合和json之间的相互转换,自己按照节点解析。gson功能真的很强大。

    Android Gson使用Demo

    android Gson使用实例 注释详细

    Gson基本使用方法

    Gson的基本使用,特点:a、快速、高效b、代码量少、简洁c、面向对象d、数据传递和解析方便

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

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

    gson使用.doc

    gson使用.docgson使用.docgson使用.doc

    Gson简要使用笔记

    Gson 是 Google 推出的一款 Java 语言编写的 JSON 库,它允许开发者将 Java 对象转换成 JSON 格式的字符串,反之亦然。Gson 库的强大之处在于其灵活性和简洁性,使得 JSON 序列化和反序列化变得更加简单。 首先,让...

    Android Gson使用实例Demo

    使用Gson解析Json和Json数组,通俗易懂

    maven项目中gson使用方法.pdf

    本篇将详细介绍在Maven项目中如何使用Gson库。 首先,要在Maven项目中引入Gson库,我们需要在项目的`pom.xml`文件中添加对应的依赖。打开`pom.xml`,在`&lt;dependencies&gt;`标签内加入以下代码: ```xml &lt;groupId&gt;...

    gson操作gson操作

    本篇文章将详细讲解如何使用Gson库进行字符串与对象、列表与字符串以及对象与字符串之间的转换。 1. 字符串到对象的转换(String -&gt; Object) 当你从网络API或其他来源获取到一个JSON格式的字符串,你可以使用Gson...

    GSON JAR包 最新包和历史包 gson-2.10.1

    介绍: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解析json

    使用gson解析json的一次测试使用

    gson-2.8.6-API文档-中文版.zip

    赠送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文档-中文...

    om.google.gson.Gson Gson maven依赖

    om.google.code.gson/gson/2.6.2 Gson maven依赖 java 开发包

    Gson使用入门

    一个例子快速掌握Gson的基本使用方法 an example showing how to use Gson to accelerate development 对应的博客地址:http://blog.csdn.net/leoleohan/article/details/50886707

    Android Studio下使用Google Gson解析Json数据示例

    Android Studio下使用Google Gson解析Json数据示例

    gson-2.8.0-API文档-中文版.zip

    赠送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文档-中文...

    com.google.gson.Gson.jar

    用户列表对象,使用JSONObject jsonStu = JSONObject.fromObject(list); 就会报错,因为对于嵌套类型的json它是解释不出来的,这时就需要用到com.google.gson.Gson.jar了。资源中提供了jar包与代码示例,一句代码...

    com.google.gson.Gson 2.8.1 2.8.2 jar包 gson

    com.google.gson.Gson 2.8.1 2.8.2 jar包 gson,直接解压到maven仓库,或者提取里面的jar包都可以使用

    Android中gson使用登陆注册功能

    原生态打造android中获取json数据和解析json数据的例子。使用的android中自带的gson,不过可能会不稳定有时候

Global site tag (gtag.js) - Google Analytics