JSON和Java对象的转换一般有两种方式一种1.Gson和FastJson,其中国内一般使用阿里的FastJSon但是会有漏洞。而谷歌的Gson要安全一点
Gson
对象转为JSON格式的字符串
1.创建GSON对象g
2.创建需要转换的对象book
3.g调用toJSon方法
package JSon1;
import com.google.gson.Gson;
public class Demo1 {
public static void main(String[] args) {
Gson g = new Gson();
Book book =new Book(1,"数学","讲述了加减乘出");
String s = g.toJson(book);
System.out.println(s);
}
}
Json转换为对象
1.创建GSON对象g
2.创建需要转换的对象book
3.g调用fromJson方法,其中传入的是需要转换的Json与转换后对象的类型.class
package JSon1;
import com.google.gson.Gson;
public class Demo2 {
public static void main(String[] args) {
Gson g = new Gson();
//将{"name":"数学","id":1,"info":"讲述了加减乘出"}转换为boo对象,注意“需要转义字符
Book book = g.fromJson("{\"name\":\"数学\",\"id\":1,\"info\":\"讲述了加减乘出\"}", Book.class);
System.out.println(book.toString());
}
}
Json转换为集合(HashMap)
1.创建Gson对象g
2.g调用fromJson方法,其中参数一传入Json参数二传入HashMap.class
注意:Json内如果属性值是数组那么会转换为Arrylist集合
package JSon1;
import com.google.gson.Gson;
import java.util.HashMap;
public class Demo5 {
public static void main(String[] args) {
Gson g = new Gson();
//将{"name":"数学","id":1,"info":"讲述了加减乘出"}转换为集合,注意“需要转义字符
HashMap data = g.fromJson("{\"name\":\"数学\",\"id\":1,\"info\":\"讲述了加减乘出\"}", HashMap.class);
System.out.println(data.get("name"));
}
}
FastJson
将对象转换为json
直接调用Json类的静态方法toJSONString,其中传入的参数是需要转换的对象
package JSon1;
import com.alibaba.fastjson.JSON;
public class Demo3 {
public static void main(String[] args) {
Book book = new Book(1,"数学","讲述了加减乘出");
String js = JSON.toJSONString(book);
System.out.println(js);
}
}
将Json转换为对象
直接调用Json类的静态方法parseObject,其中传入的是需要转换的Json与转换后对象的类型.class
package JSon1;
import com.alibaba.fastjson.JSON;
public class Demo4 {
public static void main(String[] args) {
Book book = JSON.parseObject("{\"id\":1,\"info\":\"讲述了加减乘出\",\"name\":\"数学\"}", Book.class);
System.out.println(book.toString());
}
}