使用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(); } }
相关推荐
以下是一个简单的例子,展示如何将JSON字符串转换为Java对象: ```java class User { private String name; private int age; // getters and setters... } String jsonString = "{\"name\":\"John\", \"age\...
Gson是Google提供的一个开源库,它允许我们在Java对象和JSON字符串之间进行无缝转换。本文将深入探讨如何使用Gson库进行这种转化操作。 首先,我们需要引入Gson库。如果你使用Maven,可以在pom.xml文件中添加以下...
Gson是Google提供的一款强大的库,它能够方便地实现Java对象与JSON字符串之间的转换。本篇将详细介绍如何使用Gson处理Java中的嵌套对象和JSON字符串。 首先,理解JSON的基本结构。JSON是一种基于键值对的数据结构,...
同样以`com.google.gson`为例,我们可以使用`fromJson()`方法将JSON字符串转换回Java对象。在上面的例子中,如果我们已经有一个JSON字符串,可以这样做: ```java String jsonString = "{\"name\":\"Alice\",\"age\...
总之,理解并掌握实体类与JSON字符串之间的转换是Android开发中的基本技能,而Gson库提供了一种高效且便捷的方式来实现这一目标。通过实践和不断学习,开发者能够更好地利用Gson优化数据处理,提升应用的性能和用户...
要将JSON字符串转换为Java对象,可以使用`Gson.fromJson()`方法。 ```java String jsonString = "{\"name\":\"John\", \"age\":30}"; User user = new Gson().fromJson(jsonString, User.class); ``` 4. Java对象到...
要将`Video`对象转换为JSON字符串,我们可以使用Gson的`Gson`类和`toJson()`方法: ```java import com.google.gson.Gson; // 创建一个Video对象 Video video = new Video(); video.setTitle("视频标题"); video....
这段代码会将JSON字符串转换为`Person`对象,便于进一步操作。 对于复杂JSON,比如包含嵌套的对象或数组,Gson同样能够处理。例如: ```json { "users": [ { "id": 1, "name": "张三" }, { "id": 2, "name...
本篇将深入探讨“json字符串转换插件”,重点介绍如何在项目中引入和使用这类工具。 首先,我们来理解JSON的基本结构。JSON基于JavaScript的一个子集,它使用键值对(key-value pairs)的形式来表示数据,支持数组...
// 将JSON字符串转换为对象 YourClass yourObject = JSON.parseObject(jsonString, YourClass.class); ``` 4. 遇到的常见问题: - **序列化/反序列化的异常**:如果对象的属性包含不可序列化的类型(如`...
2. **反序列化**: 将JSON字符串转换回Java对象。通过Gson提供的`fromJson()`方法,我们可以将JSON字符串还原为对应的Java对象。 3. **类型适配器**: Gson允许自定义类型适配器,以处理特殊的数据类型或格式,如日期...
Gson是Google开发的一款Java库,它主要用于在Java对象和JSON数据之间进行映射,使得Java对象能够被转换成JSON格式的字符串,同时也能够将JSON字符串解析为等效的Java对象。这个库在JavaEE环境中非常有用,因为它简化...
在Java编程中,Gson库是一个非常常用的工具,它由Google提供,用于在Java对象和JSON数据之间进行互相转换。本文将深入探讨如何使用Gson处理泛型,并将其转换为JSON字符串。 首先,理解泛型在Java中的作用是至关重要...
总结来说,Google的Gson库是Java开发中处理JSON数据的强大工具,它提供了一种简单且灵活的方式来将JSON字符串与Java对象相互转换,使得数据处理变得更加便捷。无论是在服务器端处理来自客户端的请求,还是在客户端...
对于反序列化,即从Json字符串转换回Java对象,上述库都有相应的API。例如,使用Gson的`fromJson`方法: ```java User deserializedUser = gson.fromJson(json, User.class); ``` 在处理复杂结构的Json时,比如...
Gson是Google推出的一个JSON解析器库,用于将JSON字符串解析成Java对象,或者将Java对象转换成JSON字符串。Gson提供了一个简单的API,用于解析和生成JSON数据。使用Gson可以简化JSON数据的处理,提高开发效率。 ...
Gson是Google提供的一款强大的库,它允许我们轻松地将Java对象转换为JSON字符串,反之亦然。本文将深入探讨如何利用Gson.jar来实现对象到JSON的快速转换。 1. **Gson库介绍** Gson是Google提供的一个开源项目,它...
2. 使用Gson实例解析JSON:有了JSON字符串和对应的数据模型类,我们可以使用Gson的fromJson()方法将JSON转换为Java对象。 ```java String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}...
2. **自定义对象反序列化**:将JSON字符串转换为自定义对象。 ```java jsonString = "{\"name\":\"Alice\",\"age\":30}"; Person deserializedPerson = new Gson().fromJson(jsonString, Person.class); // ...