生成JSON数据及GSON使用

由对象数据,创建JSON文件数据

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import org.junit.Test;
import java.util.ArrayList;

public class JsonDemo2 {
    /**
     * 用对象生成json数据:使用JsonArray 和 JsonObject 类
     */
    @Test
    public void creatJson(){
        ArrayList<Name> list = new ArrayList<>();
        list.add(new Name("BIN","18","Bin.com"));
        list.add(new Name("Vince","19","Vince.com"));
        //创建JsonArray的对象:JsonArray一共只需要一个即可
        JsonArray array = new JsonArray();
        for(Name n:list){
            //创建JsonObject对象:每循环一次原始数组就要创建一个对象,因为对象是多个的
            JsonObject obj = new JsonObject();
            //JsonObject的添加属性方法:添加属性名称和属性值
            obj.addProperty("firstname", n.getFirstname());
            obj.addProperty("age", n.getAge());
            obj.addProperty("email", n.getEmail());
            array.add(obj);
        }
        System.out.println(array);

    }
}

GSON工具类使用

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.Test;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;

public class JsonDemo3 {

    @Test
    public void test(){
        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/vince/JSONdemo/name.json");
        InputStreamReader reader = new InputStreamReader(is);
        Gson gson = new Gson();
        //使用GSON把一个json对象转换成java对象
        Name name = gson.fromJson(reader, Name.class);
        System.out.println(name);

        //把一个java对象转换成json对象
        String json = gson.toJson(name);
        System.out.println(json);
    }

    @Test
    public void test2(){
        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/vince/JSONdemo/names.json");
        InputStreamReader reader = new InputStreamReader(is);
        Gson gson = new Gson();
        //使用GSON把数组json对象转换成java对象
        TypeToken<List<Name>> type = new TypeToken<List<Name>>(){};
        List list = gson.fromJson(reader, type.getType());
        System.out.println(list);

        //把java数组,数组里面存储的是对象,转换成json对象
        String json = gson.toJson(list, type.getType());
        System.out.println(json);
    }

    /**
     * TypeToken<List<Name>> type = new TypeToken<List<Name>>(){};
     * 上述的意思就是:class MyTypeToke extends TypeToken<List<Name>>{},
     *  new TypeToken<List<Name>>(){}; 即表示创建一个空的实现类,因为泛型只有类定义的时候才能定义的
     */


}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。