使用Google的Gson实现对象和json字符串之间的转换
需要gson-1.4.jar
1.JsonUtil.java
package com.snail.json; import java.lang.reflect.Type; import com.google.gson.Gson; /** * Java对象和JSON字符串相互转化工具类 * @author penghuaiyi * @date 2013-08-10 */ public final class JsonUtil { private JsonUtil(){} /** * 对象转换成json字符串 * @param obj * @return */ public static String toJson(Object obj) { Gson gson = new Gson(); return gson.toJson(obj); } /** * json字符串转成对象 * @param str * @param type * @return */ public static <T> T fromJson(String str, Type type) { Gson gson = new Gson(); return gson.fromJson(str, type); } /** * json字符串转成对象 * @param str * @param type * @return */ public static <T> T fromJson(String str, Class<T> type) { Gson gson = new Gson(); return gson.fromJson(str, type); } }
2. Person.java
package com.snail.json; public class Person { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3. Test.java
package com.snail.json; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import com.google.gson.reflect.TypeToken; public class Test { /** * 一般对象的转换 */ public static void objectToJson(){ Person person = new Person(); person.setId(1); person.setName("one"); //javabean转换成json字符串 String jsonStr = JsonUtil.toJson(person); System.out.println(jsonStr); //json字符串转换成javabean Person newPerson = JsonUtil.fromJson(jsonStr, Person.class); System.out.println(person == newPerson); System.out.println(newPerson.getId()+","+newPerson.getName()); } /** * 复合结构数据转换(List) */ public static void listToJson(){ Person person1 = new Person(); person1.setId(1); person1.setName("one"); Person person2 = new Person(); person2.setId(2); person2.setName("two"); List<Person> list = new ArrayList<Person>(); list.add(person1); list.add(person2); //javabean转换成json字符串 String jsonStr = JsonUtil.toJson(list); System.out.println(jsonStr); //json字符串转换成javabean对象 List<Person> rtn = JsonUtil.fromJson(jsonStr, new TypeToken<List<Person>>(){}.getType()); for(Person person : rtn){ System.out.println(person.getId()+","+person.getName()); } } /** * 复合结构数据转换(Map) */ public static void mapToJson(){ Person person1 = new Person(); person1.setId(1); person1.setName("one"); Person person2 = new Person(); person2.setId(2); person2.setName("two"); Map<Integer,Person> map = new HashMap<Integer,Person>(); map.put(person1.getId(), person1); map.put(person2.getId(), person2); //javabean转换成json字符串 String jsonStr = JsonUtil.toJson(map); System.out.println(jsonStr); //json字符串转换成Map对象 Map<Integer,Person> rtn = JsonUtil.fromJson(jsonStr, new TypeToken<Map<Integer,Person>>(){}.getType()); for(Entry<Integer, Person> entry : rtn.entrySet()){ Integer key = entry.getKey(); Person newPerson = entry.getValue(); System.out.println("key:"+key+","+newPerson.getId()+","+newPerson.getName()); } } public static void main(String[] args) { objectToJson(); System.out.println("****************************"); listToJson(); System.out.println("****************************"); mapToJson(); } }
相关推荐
利用Google Gson实现JSON字符串和对象之间相互转换,内含源码和jar包
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 java对象或者list转换为json字符串
在Java开发中,有时需要保一个数据结构成字符串,可能你会考虑用Json,但是当Json字符串转换成Java对象时,转换成的是JsonObject,并不是你想要的Class类型的对象,操作起来就很不是愉悦,本代码就解决了这些问题。
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 ...
它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中。 gson的主要功能有: 1. 可以将Java对象转换成JSON字符串,也可以将...
截止至2018-11-27,github上com.google.gson.Gson 最新的2.8.5jar包。强大的json字符串解析功能及将字符串转换为json格式。我16年上传的免费下载的2.8.0版本不知道为什么变成下载需要50分了
完成服务器端与客户端Json与字符串之间的转换功能,如果只需使用google-json。那解压后将gson-2.8.2.jar导入到项目中即可使用。
截止至2016-12-23,github上com.google.gson.Gson ...强大的json字符串解析功能及将字符串转换为json格式。才发现需要这么多分,大家也可以去网盘下载: https://pan.baidu.com/s/1d0JW_9G7iJPIJtjUbU91Jw 提取码: qtvm
多层嵌套json转换为Map再转换为单层 最近在实习的时候,需要将多层嵌套的json转换为单层的json。并且把json进行格式化。... * 使用Gson拍平json字符串,即当有多层json嵌套时,可以把多层的json拍平为一层 * @par
用于转换Java对象为 Json 字符串和把 Json 字符串转换为对象的工具, 它是 Google 开发的,性能比较强大。
它还可以用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括您没有源代码的现有对象。 有一些开源项目可以将Java对象转换为JSON。 但是,大多数方法都要求您在类中放置Java批注。 如果您无法...
它也可以用于将JSON字符串转换为等效的Java对象。 Gson可以使用任意Java对象Gson Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。 它也可以用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java...
这对于利用 XPATH 处理 JSON 字符串等任务非常方便。 因为 XML 比 JSON 更冗长,并且需要将元素包装在匹配的标签中,所以 gson-ext 在生成的 XML 中注入了一些标签,而 JSON 则没有。 主要有六种情况(忽略嵌套。...
OkHttpLibrary 使用okhttp网络库和Gson进行Web服务调用这里的Web服务... 序列化程序允许将Json字符串转换为相应的Java类型,而反序列化程序则允许从Java转换为JSON表示形式。 您还可以配置Gson以使用对象的自定义表示。
它也可以用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括您没有源代码的预先存在的对象。 有一些开源项目可以将Java对象转换为JSON。 但是,大多数方法都要求您在类中放置Java批注。 如果...
它还可用于将 JSON 字符串转换为等效的 Java 对象。 Gson 可以处理任意 Java 对象,包括您没有源代码的预先存在的对象。 嵌套 json 支持 您可以使用@NestedName注释来“展平”简单的嵌套 JSON 对象并将其映射到目标...
支持字符串模糊查询,同时提供了JSON和Object对象之前相互转化的工具类,目前不支持集合类型转换,可以支持简单基本类型,Date类型。必须要求数据库和类的属性严格对应一致。当然你也可以采用google提供的GSon框架,...
java版qq餐厅源码途中餐厅 ...字符串转换为等效的 Java 对象。 来源 Zomato API: Zomato API 提供全球 10,000 个城市超过 150 万家餐厅的详细信息。 来源 com.github.ittianyu:BottomNavigationViewEx
java版qq餐厅源码途中餐厅 ...字符串转换为等效的 Java 对象。 来源 Zomato API: Zomato API 提供全球 10,000 个城市超过 150 万家餐厅的详细信息。 来源 com.github.ittianyu:BottomNavigationViewEx