使用 jackson 解析 json 演示样例

时间:2022-04-18 19:28:28

首先须要下载3个包,下载地址在Github FasterXML,这三个核心模块各自是:
Streaming ("jackson-core") defines low-level streaming API, and includes JSON-specific implementations
Annotations ("jackson-annotations") contains standard Jackson annotations
Databind ("jackson-databind") implements data-binding (and object serialization) support on streaming package;
                                         it depends both on streaming and annotations packages。

json文件:
<span style="font-family:SimHei;font-size:18px;">{
"name":" vonzhou",
"age":123,
"isMan":true
}</span>

POJO类:
<span style="font-family:SimHei;font-size:18px;">package jackson.test;

import java.util.HashMap;
import java.util.Map; import com.fasterxml.jackson.annotation.JsonProperty; public class ExamplePOJO {
@JsonProperty( "name")
private String name; @JsonProperty( "age")
private Integer age; @JsonProperty( "isMan")
private Boolean isMan; private Map<String,Object> additionalProperties = new
HashMap<String, Object>(); @JsonProperty( "name")
public String getName() {
return name;
}
@JsonProperty( "name")
public void setName(String name) {
this. name = name;
}
@JsonProperty( "age")
public Integer getAge() {
return age;
}
@JsonProperty( "age")
public void setAge(Integer age) {
this. age = age;
}
@JsonProperty( "isMan")
public Boolean getIsMan() {
return isMan;
}
@JsonProperty( "isMan")
public void setIsMan(Boolean isMan) {
this. isMan = isMan;
} public Map<String, Object> getAdditionalProperties() {
return additionalProperties;
} public void setAdditionalProperties(String name, Object obj) {
this. additionalProperties.put(name, obj);
} @Override
public String toString() {
return "ExamplePOJO{\n" +
"name :'" + name + "',\n" +
"age : " + age + ",\n" +
"isMan :" + isMan + ",\n" +
"additionalProperties : " + additionalProperties +
"\n}";
} } </span>

解析json文件的类:
<span style="font-family:SimHei;font-size:18px;">package jackson.test;

import java.io.File;
import java.io.IOException; import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper; public class Driver {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
ExamplePOJO bean = mapper.readValue(new File("test.json"),
ExamplePOJO.class);
System.out.println("name : " + bean.getName());
System.out.println("age : " + bean.getAge() );
System.out.println("isMan : " + bean.getIsMan() );
System.out.println("===================");
System.out.println(bean.toString());
} catch (JsonParseException e) {
e.printStackTrace();
}catch (JsonMappingException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
}</span>