GSON
Gson(谷歌开源)WangXiaoEr wangxaioer = new WangXiaoEr(); wangxaioer.setName("王小二"); wangxiaoer.setAge(25.2); wangxiaer.setMajor(new String[]{"理发","挖掘机"});Gson gson = new Gson();Syste
·
Gson(谷歌开源)
WangXiaoEr wangxaioer = new WangXiaoEr();
wangxaioer.setName("王小二");
wangxiaoer.setAge(25.2);
wangxiaer.setMajor(new String[]{"理发","挖掘机"});
Gson gson = new Gson();
System.out.println(gson.toJson(wangxiaoer));//可以将json对象转为gson对象
1:假设我想让name在json串中变成大写,在WangXiaoEr这个Model类的name属性上加上@SerializedName("Name");
2:可以使用GsonBuilder执行一些个性化的操作
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();
gsonBuilder.setFieldNamingStrategy(new FieldNamingStratery(){ 和1的功能一样
public String translateName(Field f){
if(f.getName().equals("name")){
return "NAME";
}
return name;
}
})
Gson gson = gsonBuilder.create();
System.out.println(gson.toJson(wangxaioer));
以前打印出来的是一条字符串aaaaaaaaaaaa,现在打印出来的是层次分明的aa
3:如果有些属性不想暴露给json,就在这个属性上面加上transient这样的关键字就可以了,即private transient String name;
这个关键字在序列化的时候也能用到,用它修饰的变量不参与序列化的过程
4:解析
File file = new File(类.class.getResource("文件名").getFile());
String content = FileUtils.readFileToString(file);
Gson gson = new Gson();
WangXiaoEr wangxiaoer = gson.from(content,WangXiaoEr.class);反解析json对象,json不能反向解析javabean,但是gson可以
System.out.println(wangxiaoer);
5:日起转换,假设你的javabean里面有个date类型,json是不能解析的,但是gson可以
File file = new File(类.class.getResource("文件名").getFile());
String content = FileUtils.readFileToString(file);
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();日期模板
System.out.println(wangxiaoer.getBirthday().toLocaleString());
6:可以无缝对接数组和集合
假设major是list的了,即private List<String> major;
System.out.println(wangxiaoer.getMajor());
WangXiaoEr wangxaioer = new WangXiaoEr();
wangxaioer.setName("王小二");
wangxiaoer.setAge(25.2);
wangxiaer.setMajor(new String[]{"理发","挖掘机"});
Gson gson = new Gson();
System.out.println(gson.toJson(wangxiaoer));//可以将json对象转为gson对象
1:假设我想让name在json串中变成大写,在WangXiaoEr这个Model类的name属性上加上@SerializedName("Name");
2:可以使用GsonBuilder执行一些个性化的操作
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();
gsonBuilder.setFieldNamingStrategy(new FieldNamingStratery(){ 和1的功能一样
public String translateName(Field f){
if(f.getName().equals("name")){
return "NAME";
}
return name;
}
})
Gson gson = gsonBuilder.create();
System.out.println(gson.toJson(wangxaioer));
以前打印出来的是一条字符串aaaaaaaaaaaa,现在打印出来的是层次分明的aa
3:如果有些属性不想暴露给json,就在这个属性上面加上transient这样的关键字就可以了,即private transient String name;
这个关键字在序列化的时候也能用到,用它修饰的变量不参与序列化的过程
4:解析
File file = new File(类.class.getResource("文件名").getFile());
String content = FileUtils.readFileToString(file);
Gson gson = new Gson();
WangXiaoEr wangxiaoer = gson.from(content,WangXiaoEr.class);反解析json对象,json不能反向解析javabean,但是gson可以
System.out.println(wangxiaoer);
5:日起转换,假设你的javabean里面有个date类型,json是不能解析的,但是gson可以
File file = new File(类.class.getResource("文件名").getFile());
String content = FileUtils.readFileToString(file);
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();日期模板
System.out.println(wangxiaoer.getBirthday().toLocaleString());
6:可以无缝对接数组和集合
假设major是list的了,即private List<String> major;
System.out.println(wangxiaoer.getMajor());
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献5条内容
所有评论(0)