GSON对java对象的相互转换

来源:互联网 发布:以利天诚大数据比赛 编辑:程序博客网 时间:2024/06/12 23:38

简述:

testJson_1中 将不同的Java对象转换为json格式文件(String), 

testJson_2中传入testJson_1中生成的JSON String 参数,反向返回各种Java的对象

包括:java的String、List、HashMap、JavaBean, 以及对象内包含list成员的对象转为Json String 并且 Json转回


注意点:

Gson的toJson() ,fromJson()函数使用,和两个函数所要求的参数



使用gson 包

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.7</version>
</dependency>


代码:

1)  Java Object To JSON

TestJson_1.java 

[java] view plain copy
  1. package testJson;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import com.google.gson.*;  
  9.   
  10. class PersonInfo{  
  11.     PersonInfo(String name,int age){  
  12.         this.name = name;  
  13.         this.age = age;  
  14.     }  
  15.     public PersonInfo() {  
  16.     }  
  17.     public String getName() {  
  18.         return name;  
  19.     }  
  20.     public void setName(String name) {  
  21.         this.name = name;  
  22.     }  
  23.     public int getAge() {  
  24.         return age;  
  25.     }  
  26.     public void setAge(int age) {  
  27.         this.age = age;  
  28.     }  
  29.     private String name;  
  30.     private int age;  
  31. }  
  32.   
  33. class FriendsBook{  
  34.     FriendsBook(String ownerName,List<PersonInfo> friendsBook){  
  35.         this.ownerName = ownerName;  
  36.         this.friendsBook = friendsBook;  
  37.     }  
  38.     public String getOwnerName() {  
  39.         return ownerName;  
  40.     }  
  41.     public void setOwnerName(String ownerName) {  
  42.         this.ownerName = ownerName;  
  43.     }  
  44.     public List<PersonInfo> getFriendsBook() {  
  45.         return friendsBook;  
  46.     }  
  47.     public void setFriendsBook(List<PersonInfo> friendsBook) {  
  48.         this.friendsBook = friendsBook;  
  49.     }  
  50.     private String ownerName;  
  51.     private List<PersonInfo> friendsBook;  
  52. }  
  53.   
  54.   
  55. //define a PersonBean to test Bean to Json  
  56. class PersonBean{  
  57.     PersonBean(int id,String name,int age){  
  58.         setId(id);  
  59.         setName(name);  
  60.         setAge(age);  
  61.     }  
  62.     public String getName() {  
  63.         return name;  
  64.     }  
  65.     public void setName(String name) {  
  66.         this.name = name;  
  67.     }  
  68.     public int getAge() {  
  69.         return age;  
  70.     }  
  71.     public void setAge(int age) {  
  72.         this.age = age;  
  73.     }  
  74.     public int getId() {  
  75.         return id;  
  76.     }  
  77.     public void setId(int id) {  
  78.         this.id = id;  
  79.     }  
  80.     private int id;  
  81.     private String name;  
  82.     private int age;  
  83.     private ArrayList<String>friendsList;  
  84. }  
  85.   
  86. /** 
  87.  *  
  88.  * Java Object TO JSON String 
  89.  * 
  90.  */  
  91.   
  92. public class TestJson_1 {  
  93.     //use Gson lib  
  94.     private static Gson gson = new Gson();  
  95.       
  96.     public String GetStringToJson(){  
  97.         String jsonResult = gson.toJson(new String("aaa"));  
  98.         return jsonResult;  
  99.     }  
  100.       
  101.     public String GetArrayListToJson(){  
  102.         ArrayList<String> list = new ArrayList<String>();  
  103.         list.add("aaa");  
  104.         list.add("bbb");         
  105.         list.add("ccc");         
  106.         String jsonResult = gson.toJson(list);  
  107.         return jsonResult;  
  108.     }  
  109.       
  110.     public String GetHashMapToJson(){  
  111.         Map<Integer, String> map = new HashMap<Integer, String>();  
  112.         map.put(1"aaa");   
  113.         map.put(2"bbb");   
  114.         map.put(3"ccc");   
  115.         String jsonResult = gson.toJson(map);  
  116.         return jsonResult;  
  117.     }  
  118.       
  119.     public String GetPersonBeanToJson(){  
  120.         PersonBean pbean = new PersonBean(0,"aaa",21);  
  121.         String jsonResult = gson.toJson(pbean);  
  122.         return jsonResult;  
  123.     }  
  124.       
  125.     public String GetFriendsBookToJson(){  
  126.         PersonInfo p0 = new PersonInfo("John",22);  
  127.         PersonInfo p1 = new PersonInfo("Marry",24);  
  128.         PersonInfo p2 = new PersonInfo("Hellon",21);  
  129.         List<PersonInfo> friendsList = new ArrayList<PersonInfo>();  
  130.         friendsList.add(p0);  
  131.         friendsList.add(p1);  
  132.         friendsList.add(p2);  
  133.         FriendsBook friendsBook = new FriendsBook("OWNER",friendsList);  
  134.         String jsonResult = gson.toJson(friendsBook);  
  135.         return jsonResult;  
  136.     }  
  137.       
  138. }  

2) JSON To Java Object
TestJson_2.java

[java] view plain copy
  1. package testJson;  
  2.   
  3. import java.lang.reflect.Type;  
  4. import java.util.ArrayList;  
  5. import java.util.HashMap;  
  6. import java.util.Map;  
  7.   
  8. import com.google.gson.Gson;  
  9. import com.google.gson.reflect.TypeToken;  
  10.   
  11. //JSON String To Java Object  
  12. public class TestJson_2 {  
  13.     private static Gson gson = new Gson();  
  14.     public String GetJsonToString(String jsonString){  
  15.         String str = gson.fromJson(jsonString, String.class);  
  16.         return str;  
  17.     }  
  18.       
  19.     public ArrayList<String> GetJsonToArrayList(String jsonString){  
  20.         ArrayList<String> list =   
  21.             gson.fromJson(jsonString, new TypeToken<ArrayList<String>>(){}.getType());  
  22.         return list;  
  23.     }  
  24.       
  25.     public Map<Integer, String> GetJsonToHashMap(String jsonString){  
  26.         HashMap<Integer,String> hashMap =   
  27.             gson.fromJson(jsonString, new TypeToken<HashMap<Integer,String>>(){}.getType());  
  28.         return hashMap;  
  29.     }  
  30.       
  31.     public PersonBean GetJsonToPersonBean(String jsonString){  
  32.         PersonBean personBeanArrayList =  
  33.             gson.fromJson(jsonString, PersonBean.class);  
  34.         return personBeanArrayList;  
  35.     }  
  36.       
  37.     public FriendsBook GetJsonToFriendsBook(String jsonString){  
  38.         FriendsBook friendsBook = gson.fromJson(jsonString, FriendsBook.class);  
  39.         return friendsBook;  
  40.     }  
  41.       
  42. }  


测试代码:

TestJson.Java

[java] view plain copy
  1. package testJson;  
  2.   
  3. public class TestJson {  
  4.     private static final TestJson_1 tj1 = new TestJson_1();  
  5.     private static final TestJson_2 tj2 = new TestJson_2();  
  6.     public static void main(String[] args){  
  7.         //Java Object to JSON String  
  8.         System.out.println("TestStringToJson: "   
  9.                 + tj1.GetStringToJson() + "\n");  
  10.         System.out.println("TestArrayListToJson: "   
  11.                 + tj1.GetArrayListToJson() + "\n");  
  12.         System.out.println("TestHashMapToJson: "   
  13.                 + tj1.GetHashMapToJson() + "\n");  
  14.         System.out.println("TestPersonBeanToJson: "   
  15.                 + tj1.GetPersonBeanToJson() + "\n");  
  16.         System.out.println("TestFriendsBookToJson: \n"   
  17.                 + tj1.GetFriendsBookToJson() + "\n");  
  18.           
  19.         /* 
  20.          * reverse JSON String To Java Object 
  21.          */  
  22.         System.out.println("/***********************JSON String To Java Object******************************************/\n");  
  23.           
  24.         String jsonToString = tj1.GetStringToJson();  
  25.         System.out.println("Json To String: "   
  26.                 + tj2.GetJsonToString(jsonToString) + "\n");  
  27.           
  28.         String jsonToArrayList_String_ = tj1.GetArrayListToJson();  
  29.         System.out.println("Json To ArrayList----list[0]: "   
  30.                 + tj2.GetJsonToArrayList(jsonToArrayList_String_).get(0) + "\n");  
  31.           
  32.         String jsonToHashMap = tj1.GetHashMapToJson();  
  33.         System.out.println("Json To HashMap----hashMap.get(3): "   
  34.                 + tj2.GetJsonToHashMap(jsonToHashMap).get(3) + "\n");  
  35.           
  36.         String jsonToPersonBean = tj1.GetPersonBeanToJson();  
  37.         System.out.println("Json To PersonBean----personBean.getName(): "   
  38.                 + tj2.GetJsonToPersonBean(jsonToPersonBean).getName() + "\n");  
  39.           
  40.         String jsonToFriendsBook = tj1.GetFriendsBookToJson();  
  41.         System.out.println("Json To FriendsBook----friendsBook.getFriendsBook().get(0).getName(): "   
  42.                 + tj2.GetJsonToFriendsBook(jsonToFriendsBook).getFriendsBook().get(0).getName() + "\n");  
  43.     }  
  44. }  



测试输出:


0 0
原创粉丝点击