使用JsonObject和Gson分别读取json文件
useinfo.json文件
{
"name":"王二小",
"age":31,
"birthday":"1990-01-01",
"school":"蓝翔技校",
"major":["理发","挖掘机"],
"has_work":true,
"car":null,
"house":null,
"comment":"这是一个注释"
}
使用JsonObject读取Json文件
引入依赖
<!--commons-io读取文件内容-->
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
Json实体类
public class UserInfo {
// @SerializedName("name")
private String name;
private String school;
private Integer age;
private String birthday;
private String[] major;
private Boolean has_work;
private Object car;
private Object house;
private String comment;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String[] getMajor() {
return major;
}
public void setMajor(String[] major) {
this.major = major;
}
public Boolean getHas_work() {
return has_work;
}
public void setHas_work(Boolean has_work) {
this.has_work = has_work;
}
public Object getCar() {
return car;
}
public void setCar(Object car) {
this.car = car;
}
public Object getHouse() {
return house;
}
public void setHouse(Object house) {
this.house = house;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
测试类
public class ReadJsonTest {
public static void main(String[] args) {
File file = new File(ReadJsonTest.class.getResource("/userinfo.json").getFile());
try {
String content = FileUtils.readFileToString(file,"utf-8");
JSONObject jsonObject = new JSONObject(content);
if(jsonObject.isNull("name")){
System.out.println("姓名:"+jsonObject.getString("name"));
}
if(jsonObject.isNull("age")){
System.out.println("年龄:"+jsonObject.getInt("age"));
}
if(jsonObject.isNull("has_work")){
System.out.println("是否有工作:"+jsonObject.getBoolean("has_work"));
}
if(jsonObject.isNull("major")){
JSONArray major = jsonObject.getJSONArray("major");
for (int i=0;i<=major.length();i++) {
System.out.println("专业"+i+":"+major.get(i));
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
使用Gson读取Json文件
引入依赖
<!--gson-->
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
<!--commons-io读取文件内容-->
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
Json实体类
public class UserInfoWithDateBirthday {
// @SerializedName("name")
private String name;
private String school;
private Integer age;
private Date birthday;
private List<String> major;
private Boolean has_work;
private Object car;
private Object house;
private String comment;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public List<String> getMajor() {
return major;
}
public void setMajor(List<String> major) {
this.major = major;
}
public Boolean getHas_work() {
return has_work;
}
public void setHas_work(Boolean has_work) {
this.has_work = has_work;
}
public Object getCar() {
return car;
}
public void setCar(Object car) {
this.car = car;
}
public Object getHouse() {
return house;
}
public void setHouse(Object house) {
this.house = house;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
测试类
public class ReadGsonTest {
public static void main(String[] args) {
File file = new File(ReadJsonTest.class.getResource("/userinfo.json").getFile());
try {
String content = FileUtils.readFileToString(file,"utf-8");
Gson gson = new GsonBuilder().setDateFormat("yyyy/MM/dd").create();
UserInfoWithDateBirthday userInfoWithDateBirthday = gson.fromJson(content,UserInfoWithDateBirthday.class);
System.out.println(userInfoWithDateBirthday.toString());
System.out.println(userInfoWithDateBirthday.getMajor());
System.out.println(userInfoWithDateBirthday.getMajor().getClass());
} catch (IOException e) {
e.printStackTrace();
}
}
}