您的位置:首页 > 编程语言 > Java开发

GSON对java对象的相互转换

2016-11-14 19:07 302 查看
简述:

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

package testJson;  

  

import java.util.ArrayList;  

import java.util.HashMap;  

import java.util.List;  

import java.util.Map;  

  

import com.google.gson.*;  

  

class PersonInfo{  

    PersonInfo(String name,int age){  

        this.name = name;  

        this.age = age;  

    }  

    public PersonInfo() {  

    }  

    public String getName() {  

        return name;  

    }  

    public void setName(String name) {  

        this.name = name;  

    }  

    public int getAge() {  

        return age;  

    }  

    public void setAge(int age) {  

        this.age = age;  

    }  

    private String name;  

    private int age;  

}  

  

class FriendsBook{  

    FriendsBook(String ownerName,List<PersonInfo> friendsBook){  

        this.ownerName = ownerName;  

        this.friendsBook = friendsBook;  

    }  

    public String getOw
269c9
nerName() {  

        return ownerName;  

    }  

    public void setOwnerName(String ownerName) {  

        this.ownerName = ownerName;  

    }  

    public List<PersonInfo> getFriendsBook() {  

        return friendsBook;  

    }  

    public void setFriendsBook(List<PersonInfo> friendsBook) {  

        this.friendsBook = friendsBook;  

    }  

    private String ownerName;  

    private List<PersonInfo> friendsBook;  

}  

  

  

//define a PersonBean to test Bean to Json  

class PersonBean{  

    PersonBean(int id,String name,int age){  

        setId(id);  

        setName(name);  

        setAge(age);  

    }  

    public String getName() {  

        return name;  

    }  

    public void setName(String name) {  

        this.name = name;  

    }  

    public int getAge() {  

        return age;  

    }  

    public void setAge(int age) {  

        this.age = age;  

    }  

    public int getId() {  

        return id;  

    }  

    public void setId(int id) {  

        this.id = id;  

    }  

    private int id;  

    private String name;  

    private int age;  

    private ArrayList<String>friendsList;  

}  

  

/** 

 *  

 * Java Object TO JSON String 

 * 

 */  

  

public class TestJson_1 {  

    //use Gson lib  

    private static Gson gson = new Gson();  

      

    public String GetStringToJson(){  

        String jsonResult = gson.toJson(new String("aaa"));  

        return jsonResult;  

    }  

      

    public String GetArrayListToJson(){  

        ArrayList<String> list = new ArrayList<String>();  

        list.add("aaa");  

        list.add("bbb");         

        list.add("ccc");         

        String jsonResult = gson.toJson(list);  

        return jsonResult;  

    }  

      

    public String GetHashMapToJson(){  

        Map<Integer, String> map = new HashMap<Integer, String>();  

        map.put(1, "aaa");   

        map.put(2, "bbb");   

        map.put(3, "ccc");   

        String jsonResult = gson.toJson(map);  

        return jsonResult;  

    }  

      

    public String GetPersonBeanToJson(){  

        PersonBean pbean = new PersonBean(0,"aaa",21);  

        String jsonResult = gson.toJson(pbean);  

        return jsonResult;  

    }  

      

    public String GetFriendsBookToJson(){  

        PersonInfo p0 = new PersonInfo("John",22);  

        PersonInfo p1 = new PersonInfo("Marry",24);  

        PersonInfo p2 = new PersonInfo("Hellon",21);  

        List<PersonInfo> friendsList = new ArrayList<PersonInfo>();  

        friendsList.add(p0);  

        friendsList.add(p1);  

        friendsList.add(p2);  

        FriendsBook friendsBook = new FriendsBook("OWNER",friendsList);  

        String jsonResult = gson.toJson(friendsBook);  

        return jsonResult;  

    }  

      

}  

2) JSON To Java Object

TestJson_2.java

[java] view
plain copy

package testJson;  

  

import java.lang.reflect.Type;  

import java.util.ArrayList;  

import java.util.HashMap;  

import java.util.Map;  

  

import com.google.gson.Gson;  

import com.google.gson.reflect.TypeToken;  

  

//JSON String To Java Object  

public class TestJson_2 {  

    private static Gson gson = new Gson();  

    public String GetJsonToString(String jsonString){  

        String str = gson.fromJson(jsonString, String.class);  

        return str;  

    }  

      

    public ArrayList<String> GetJsonToArrayList(String jsonString){  

        ArrayList<String> list =   

            gson.fromJson(jsonString, new TypeToken<ArrayList<String>>(){}.getType());  

        return list;  

    }  

      

    public Map<Integer, String> GetJsonToHashMap(String jsonString){  

        HashMap<Integer,String> hashMap =   

            gson.fromJson(jsonString, new TypeToken<HashMap<Integer,String>>(){}.getType());  

        return hashMap;  

    }  

      

    public PersonBean GetJsonToPersonBean(String jsonString){  

        PersonBean personBeanArrayList =  

            gson.fromJson(jsonString, PersonBean.class);  

        return personBeanArrayList;  

    }  

      

    public FriendsBook GetJsonToFriendsBook(String jsonString){  

        FriendsBook friendsBook = gson.fromJson(jsonString, FriendsBook.class);  

        return friendsBook;  

    }  

      

}  

测试代码:

TestJson.Java

[java] view
plain copy

package testJson;  

  

public class TestJson {  

    private static final TestJson_1 tj1 = new TestJson_1();  

    private static final TestJson_2 tj2 = new TestJson_2();  

    public static void main(String[] args){  

        //Java Object to JSON String  

        System.out.println("TestStringToJson: "   

                + tj1.GetStringToJson() + "\n");  

        System.out.println("TestArrayListToJson: "   

                + tj1.GetArrayListToJson() + "\n");  

        System.out.println("TestHashMapToJson: "   

                + tj1.GetHashMapToJson() + "\n");  

        System.out.println("TestPersonBeanToJson: "   

                + tj1.GetPersonBeanToJson() + "\n");  

        System.out.println("TestFriendsBookToJson: \n"   

                + tj1.GetFriendsBookToJson() + "\n");  

          

        /* 

         * reverse JSON String To Java Object 

         */  

        System.out.println("/***********************JSON String To Java Object******************************************/\n");  

          

        String jsonToString = tj1.GetStringToJson();  

        System.out.println("Json To String: "   

                + tj2.GetJsonToString(jsonToString) + "\n");  

          

        String jsonToArrayList_String_ = tj1.GetArrayListToJson();  

        System.out.println("Json To ArrayList----list[0]: "   

                + tj2.GetJsonToArrayList(jsonToArrayList_String_).get(0) + "\n");  

          

        String jsonToHashMap = tj1.GetHashMapToJson();  

        System.out.println("Json To HashMap----hashMap.get(3): "   

                + tj2.GetJsonToHashMap(jsonToHashMap).get(3) + "\n");  

          

        String jsonToPersonBean = tj1.GetPersonBeanToJson();  

        System.out.println("Json To PersonBean----personBean.getName(): "   

                + tj2.GetJsonToPersonBean(jsonToPersonBean).getName() + "\n");  

          

        String jsonToFriendsBook = tj1.GetFriendsBookToJson();  

        System.out.println("Json To FriendsBook----friendsBook.getFriendsBook().get(0).getName(): "   

                + tj2.GetJsonToFriendsBook(jsonToFriendsBook).getFriendsBook().get(0).getName() + "\n");  

    }  

}  

测试输出:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: