Map的存储结构式Key/Value形式,Key 和 Value可以是普通类型,也可以是自己写的JavaBean(本文),还可以是带有泛型的List(下一篇博客).本例中您要重点看如何将Json转回为普通JavaBean对象时TypeToken的定义.
实体类:
- public class Point {
- private int x;
- private int y;
- public Point(int x, int y) {
- this.x = x;
- this.y = y;
- }
- public int getX() {
- return x;
- }
- public void setX(int x) {
- this.x = x;
- }
- public int getY() {
- return y;
- }
- public void setY(int y) {
- this.y = y;
- }
- @Override
- public String toString() {
- return "Point [x=" + x + ", y=" + y + "]";
- }
- }
测试类:
- import java.util.LinkedHashMap;
- import java.util.Map;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.google.gson.reflect.TypeToken;
- public class GsonTest3 {
- public static void main(String[] args) {
- Gson gson = new GsonBuilder().enableComplexMapKeySerialization()
- .create();
- Map<Point, String> map1 = new LinkedHashMap<Point, String>();// 使用LinkedHashMap将结果按先进先出顺序排列
- map1.put(new Point(5, 6), "a");
- map1.put(new Point(8, 8), "b");
- String s = gson.toJson(map1);
- System.out.println(s);// 结果:[[{"x":5,"y":6},"a"],[{"x":8,"y":8},"b"]]
- Map<Point, String> retMap = gson.fromJson(s,
- new TypeToken<Map<Point, String>>() {
- }.getType());
- for (Point p : retMap.keySet()) {
- System.out.println("key:" + p + " values:" + retMap.get(p));
- }
- System.out.println(retMap);
- System.out.println("----------------------------------");
- Map<String, Point> map2 = new LinkedHashMap<String, Point>();
- map2.put("a", new Point(3, 4));
- map2.put("b", new Point(5, 6));
- String s2 = gson.toJson(map2);
- System.out.println(s2);
- Map<String, Point> retMap2 = gson.fromJson(s2,
- new TypeToken<Map<String, Point>>() {
- }.getType());
- for (String key : retMap2.keySet()) {
- System.out.println("key:" + key + " values:" + retMap2.get(key));
- }
- }
- }
结果:
- [[{"x":5,"y":6},"a"],[{"x":8,"y":8},"b"]]
- key:Point [x=5, y=6] values:a
- key:Point [x=8, y=8] values:b
- {Point [x=5, y=6]=a, Point [x=8, y=8]=b}
- ----------------------------------
- {"a":{"x":3,"y":4},"b":{"x":5,"y":6}}
- key:a values:Point [x=3, y=4]
- key:b values:Point [x=5, y=6]
相关推荐
Json转换利器Gson之实例三-Map处理(上) (http://blog.csdn.net/lk_blog/article/details/7685210) Json转换利器Gson之实例四-Map处理(下) (http://blog.csdn.net/lk_blog/article/details/7685224) Json转换利器Gson...
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 java对象或者list转换为json字符串
gson-2.3.1.jar json 转换工具
NULL 博文链接:https://bdk82924.iteye.com/blog/1988977
Gson-2.8.1的官方jar包合集【gson-2.8.1.jar,gson-2.8.1-sources.jar】, 包含Gson核心包和源码包。
gson-2.10.1.jar gson-2.10.jar gson-2.9.1.jar gson-2.9.0.jar gson-2.8.9.jar gson-2.8.8.jar gson-2.8.7.jar gson-2.8.6.jar gson-2.8.5.jar gson-2.8.4.jar gson-2.8.3.jar gson-2.8.2.jar gson-2.8.1.jar gson-...
赠送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.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文档-中文...
Google的json数据转换的三个jar包gson-2.2.4.jar,gson-2.2.4-javadoc.jar,gson-2.2.4-sources.jar
Gson-2.8.0的官方jar包合集【gson-2.8.0.jar,gson-2.8.0-sources.jar,gson-2.8.0-javadoc.jar】,JSON解析类库Gson库的jar包。
Gson解析(List和Map)格式json数据 - CSDN博客原创2013年11月23日 21:54:46Gson解析(List和Map)格式json数据天
解放你的双手,不用再去一个一个JSONObject去处理解析问题,两行代码搞定一切
Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
赠送jar包:gson-2.8.5.jar; 赠送原API文档:gson-2.8.5-javadoc.jar; 赠送源代码:gson-2.8.5-sources.jar; 赠送Maven依赖信息文件:gson-2.8.5.pom; 包含翻译后的API文档:gson-2.8.5-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包、gson包以及相应的源码,其中包括了json的工具类-json.jar以及gson的工具类-gson.jar,以及json-sources 和gson-sources。
java开发中使用JSON和gson所需要的jar,里面包含了所有的jar,这样我们就可以随便使用JSON和gson了
赠送jar包:gson-2.6.2.jar; 赠送原API文档:gson-2.6.2-javadoc.jar; 赠送源代码:gson-2.6.2-sources.jar; 包含翻译后的API文档:gson-2.6.2-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:...
gson-2.3.jar(含gson-2.3-javadoc.jar和gson-2.3-sources.jar)解压缩之后有3个夹包
赠送jar包:gson-2.6.2.jar; 赠送原API文档:gson-2.6.2-javadoc.jar; 赠送源代码:gson-2.6.2-sources.jar; 包含翻译后的API文档:gson-2.6.2-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:...