使用Google的Gson实现对象和json字符串之间的转换
来源:互联网 发布:cydia怎么下载软件 编辑:程序博客网 时间:2024/05/19 12:24
http://penghuaiyi.iteye.com/blog/1922632
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();
- }
- }
0 0
- 使用Google的Gson实现对象和json字符串之间的转换
- 使用Google的Gson实现对象的json字符串之间的转换
- Android使用Google Gson实现JSON字符串和对象、对象数组之间相互转换
- 利用Google Gson实现JSON字符串和对象之间相互转换
- 利用Google Gson实现JSON字符串和对象之间相互转换
- Gson 字符串和json对象的转换
- 使用Gson或者GsonBuilder实现JSON和Java对象之间的转换
- 使用Gson实现Json和Java对象的转换
- Gson对Java嵌套对象和JSON字符串之间的转换
- Gson进行json字符串和对象之间的转化
- Gson进行json字符串和对象之间的转化
- JSON对象和字符串之间的转换
- json字符串和对象之间的转换
- android开发中使用Gson进行对象和Json之间的转换很方便
- Gson在java对象和json字符串之间转换
- Gson在java对象和json字符串之间转换
- Gson在java对象和json字符串之间转换
- Gson在java对象和json字符串之间转换
- shell介绍
- 蓝桥杯8题
- Springmvc异常之--通配符的匹配很全面, 但无法找到元素 'mvc:resources' 的声明
- 文章标题
- typedef常见用法
- 使用Google的Gson实现对象和json字符串之间的转换
- UNITY发布安卓APK的整体流程
- Mysql LIMIT如何正确对其进行优化
- 如何阅读一本书(6)
- 下面是毕老师给出的四道String 练习题:
- ListView中convertView和ViewHolder的工作原理
- iOS第三方框架集合
- 2016金山WPS春季实习招聘笔试&面试问题回忆
- JAVA设计模式之------单例模式