由对象数据,创建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>>(){}; 即表示创建一个空的实现类,因为泛型只有类定义的时候才能定义的
*/
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。