`

使用Google的Gson实现对象和json字符串之间的转换

 
阅读更多

使用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字符串和对象之间相互转换

    以下是一个简单的例子,展示如何将JSON字符串转换为Java对象: ```java class User { private String name; private int age; // getters and setters... } String jsonString = "{\"name\":\"John\", \"age\...

    使用gson,java对象和json字符串之间相互转化

    Gson是Google提供的一个开源库,它允许我们在Java对象和JSON字符串之间进行无缝转换。本文将深入探讨如何使用Gson库进行这种转化操作。 首先,我们需要引入Gson库。如果你使用Maven,可以在pom.xml文件中添加以下...

    Gson对Java嵌套对象和JSON字符串之间的转换 ..pdf

    Gson是Google提供的一款强大的库,它能够方便地实现Java对象与JSON字符串之间的转换。本篇将详细介绍如何使用Gson处理Java中的嵌套对象和JSON字符串。 首先,理解JSON的基本结构。JSON是一种基于键值对的数据结构,...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    同样以`com.google.gson`为例,我们可以使用`fromJson()`方法将JSON字符串转换回Java对象。在上面的例子中,如果我们已经有一个JSON字符串,可以这样做: ```java String jsonString = "{\"name\":\"Alice\",\"age\...

    【android开发】实体类和JSON字符串之间相互转化

    总之,理解并掌握实体类与JSON字符串之间的转换是Android开发中的基本技能,而Gson库提供了一种高效且便捷的方式来实现这一目标。通过实践和不断学习,开发者能够更好地利用Gson优化数据处理,提升应用的性能和用户...

    gson java对象与json转换(实例代码说明及教程)

    要将JSON字符串转换为Java对象,可以使用`Gson.fromJson()`方法。 ```java String jsonString = "{\"name\":\"John\", \"age\":30}"; User user = new Gson().fromJson(jsonString, User.class); ``` 4. Java对象到...

    Gson处理Json格式字符串代码

    要将`Video`对象转换为JSON字符串,我们可以使用Gson的`Gson`类和`toJson()`方法: ```java import com.google.gson.Gson; // 创建一个Video对象 Video video = new Video(); video.setTitle("视频标题"); video....

    Gson解析json数据

    这段代码会将JSON字符串转换为`Person`对象,便于进一步操作。 对于复杂JSON,比如包含嵌套的对象或数组,Gson同样能够处理。例如: ```json { "users": [ { "id": 1, "name": "张三" }, { "id": 2, "name...

    json字符串转换插件

    本篇将深入探讨“json字符串转换插件”,重点介绍如何在项目中引入和使用这类工具。 首先,我们来理解JSON的基本结构。JSON基于JavaScript的一个子集,它使用键值对(key-value pairs)的形式来表示数据,支持数组...

    java 对象与json字符串互相转换工具类

    // 将JSON字符串转换为对象 YourClass yourObject = JSON.parseObject(jsonString, YourClass.class); ``` 4. 遇到的常见问题: - **序列化/反序列化的异常**:如果对象的属性包含不可序列化的类型(如`...

    gson-jar的资源,处理json字符串请下载

    2. **反序列化**: 将JSON字符串转换回Java对象。通过Gson提供的`fromJson()`方法,我们可以将JSON字符串还原为对应的Java对象。 3. **类型适配器**: Gson允许自定义类型适配器,以处理特殊的数据类型或格式,如日期...

    用于将对象转为字符串、将字符串转为对象的gson

    Gson是Google开发的一款Java库,它主要用于在Java对象和JSON数据之间进行映射,使得Java对象能够被转换成JSON格式的字符串,同时也能够将JSON字符串解析为等效的Java对象。这个库在JavaEE环境中非常有用,因为它简化...

    gson解析泛型和将泛型转为json字符串

    在Java编程中,Gson库是一个非常常用的工具,它由Google提供,用于在Java对象和JSON数据之间进行互相转换。本文将深入探讨如何使用Gson处理泛型,并将其转换为JSON字符串。 首先,理解泛型在Java中的作用是至关重要...

    json字符串解析工具google

    总结来说,Google的Gson库是Java开发中处理JSON数据的强大工具,它提供了一种简单且灵活的方式来将JSON字符串与Java对象相互转换,使得数据处理变得更加便捷。无论是在服务器端处理来自客户端的请求,还是在客户端...

    java解析Json字符串

    对于反序列化,即从Json字符串转换回Java对象,上述库都有相应的API。例如,使用Gson的`fromJson`方法: ```java User deserializedUser = gson.fromJson(json, User.class); ``` 在处理复杂结构的Json时,比如...

    使用gson解析json

    Gson是Google推出的一个JSON解析器库,用于将JSON字符串解析成Java对象,或者将Java对象转换成JSON字符串。Gson提供了一个简单的API,用于解析和生成JSON数据。使用Gson可以简化JSON数据的处理,提高开发效率。 ...

    利用Gson.jar快速将对象类型转换为Json

    Gson是Google提供的一款强大的库,它允许我们轻松地将Java对象转换为JSON字符串,反之亦然。本文将深入探讨如何利用Gson.jar来实现对象到JSON的快速转换。 1. **Gson库介绍** Gson是Google提供的一个开源项目,它...

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

    2. 使用Gson实例解析JSON:有了JSON字符串和对应的数据模型类,我们可以使用Gson的fromJson()方法将JSON转换为Java对象。 ```java String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}...

    GSON 对象与json之间的转换

    2. **自定义对象反序列化**:将JSON字符串转换为自定义对象。 ```java jsonString = "{\"name\":\"Alice\",\"age\":30}"; Person deserializedPerson = new Gson().fromJson(jsonString, Person.class); // ...

Global site tag (gtag.js) - Google Analytics