使用Google的Gson實現對象和json字符串之間的轉換java
須要gson.jarjson
1.JsonUtil.java工具
- package com.snail.json;
-
- import java.lang.reflect.Type;
- import com.google.gson.Gson;
- public final class JsonUtil {
-
- private JsonUtil(){}
-
-
- public static String toJson(Object obj) {
- Gson gson = new Gson();
- return gson.toJson(obj);
- }
-
-
- public static <T> T fromJson(String str, Type type) {
- Gson gson = new Gson();
- return gson.fromJson(str, type);
- }
-
-
- public static <T> T fromJson(String str, Class<T> type) {
- Gson gson = new Gson();
- return gson.fromJson(str, type);
- }
-
- }
2. Person.javathis
- 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.javagoogle
- 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");
-
- String jsonStr = JsonUtil.toJson(person);
- System.out.println(jsonStr);
-
-
- Person newPerson = JsonUtil.fromJson(jsonStr, Person.class);
- System.out.println(person == newPerson);
- System.out.println(newPerson.getId()+","+newPerson.getName());
- }
-
-
- 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);
-
-
- String jsonStr = JsonUtil.toJson(list);
- System.out.println(jsonStr);
-
-
-
- List<Person> rtn = JsonUtil.fromJson(jsonStr, new TypeToken<List<Person>>(){}.getType());
- for(Person person : rtn){
- System.out.println(person.getId()+","+person.getName());
- }
- }
-
-
- 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);
-
-
- String jsonStr = JsonUtil.toJson(map);
- System.out.println(jsonStr);
-
-
- 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();
- }
-
-
-
- }