【两种使用java对Json解析的方法】
1.Gson解析
在使用前需要到入Gson.jar包,下载地址为:https://github.com/google/gson
-
将对象转成JSON字符串
转换JSON字符串的步骤: 1. 引入JAR包 2. 在需要转换JSON字符串的位置编写如下代码即可: String json = new Gson().toJSON(要转换的对象); 案例: Person p = PersonDao.find(); String json = new Gson().toJson(p); System.out.println(json);
-
将Json字符串转成对象
1. 引入JAR包 2. 在需要转换Java对象的位置, 编写如下代码: 对象 = new Gson().fromJson(JSON字符串,对象类型.class); 案例: String json = "{\"age\":15,\"name\":\"张三\",\"sex\":\"male\"}"; Person p = new Gson().fromJson(json, Person.class); System.out.println(p);
使用案例:
import com.google.gson.Gson;
public class JsonDemo1 {
public static void main(String[] args) {
Person person = new Person(15,"张三","male");
Gson gson = new Gson();
//将对象转成json字符串
String personJson = gson.toJson(person);
System.out.println(personJson);
//把json字符串转成对象
Person p1 = gson.fromJson(personJson, Person.class);
System.out.println(p1);
}
static class Person{
private int age;
private String name;
private String sex;
public Person(int age, String name, String sex) {
this.age = age;
this.name = name;
this.sex = sex;
}
public int getNum() {
return age;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
}
2.fastJson解析
在使用前需要到入fastjson.jar包,下载地址为:https://github.com/alibaba/fastjson
-
将对象转成JSON字符串
转换JSON字符串的步骤: 1. 引入JAR包 2. 在需要转换JSON字符串的位置编写如下代码即可: String json=JSON.toJSONString(要转换的对象); 案例: Person p = PersonDao.find(); String json=JSON.toJSONString(p); System.out.println(json);
-
将Json字符串转成对象
1. 引入JAR包 2. 在需要转换Java对象的位置, 编写如下代码: 类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 或 List<类型> list=JSON.parseArray(JSON字符串,类型.class); 案例: String json = "{\"age\":15,\"name\":\"张三\",\"sex\":\"male\"}"; Person p = JSON.parseObject(json, Person.class); System.out.println(person);
使用案例
import com.alibaba.fastjson.JSON;
public class JsonDemo2 {
public static void main(String[] args) {
Person person = new Person(15,"张三","male");
//将对象转成json字符串
String personJson = JSON.toJSONString(person);
System.out.println(personJson);
//把json字符串转成对象
Person p1 = JSON.parseObject(personJson, Person.class);
System.out.println(p1);
}
}
public class Person {
private int age;
private String name;
private String sex;
public Person(int age, String name, String sex) {
this.age = age;
this.name = name;
this.sex = sex;
}
public int getNum() {
return age;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
注意: 在使用Gson时,将json字符串转成内置类不会报错,而在使用fastjson时,会产生报错,必须把类放在另一个类文件。