将对象转成Json格式
Gson转换
1.首先先下载最新jar包
地址:https://github.com/google/gson
引入jar包后
2.代码:
这里创建book类代码就不写了
public class Demo1 {
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换
Book b = new Book("100","射雕英雄传","金庸666");
String s = g.toJson(b);
System.out.println(s);
}
}
转换结果:
{"id":"100","name":"射雕英雄传","info":"金庸666"}
Gson格式转对象
public class Demo2 {
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换
Book b = g.fromJson("{\"id\":\"100\",\"name\":\"射雕英雄传\",\"info\":\"金庸666\"}", Book.class);
System.out.println(b.getId());
}
}
转换结果:
100
Json格式的数组转换
public class Demo3 {
public static void main(String[] args) {
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换
HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"射雕英雄传\",\"info\":\"金庸\",\"page\":[\"黄蓉\",\"郭靖\",\"老顽童\"]}", HashMap.class);
System.out.println("数组转换后的格式:"+data.get("page").getClass());//获取数组转换后的格式
List page = (List) data.get("page");//将page数组转成list对象
System.out.println(page.get(1));
}
}
转换结果:
数组转换后的格式:class java.util.ArrayList
郭靖
可见将Json格式的数组转换后,默认的格式不再是数组,而是变成了ArrayList
阿里巴巴的fastjson
这里Fastjson用法和谷歌的gson差不太多
同样也是在GitHub上下载最新版本大的jar包,导入后使用,fastjson用法比gson更简洁
网址:https://github.com/alibaba/fastjson/wiki
对象转Json
public class Demo4 {
public static void main(String[] args) {
Book book = new Book("1002","绝代双骄","古龙大大");
//1. 转换
String json = JSON.toJSONString(book);
System.out.println(json);
}
}
转换结果:
{"id":"1002","info":"古龙大大","name":"绝代双骄"}
Json转对象:
public class Demo5 {
public static void main(String[] args) {
Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"古龙大大\",\"name\":\"绝代双骄\"}", Book.class);
System.out.println(book.getId());
}
}
转换结果:
1002
转数组
public class Demo6 {
public static void main(String[] args) {
List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]", String.class);
System.out.println(strings.get(1));
}
}
转换结果:
二三四