build.gradle est le suivant.
build.gragle
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.9.1'
user.json
[
{
"name": "amy",
"age": 10
},
{
"name": "john",
"age": 25
},
{
"name": "lisa",
"age": 49
}
]
UserJson.class
public class UserJson {
private String name;
private String age;
public void getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
List<UserJson> userList = new ArrayList<UserJson>();
ObjectMapper mapper = new ObjectMapper();
try {
user = mapper.readValue("chaîne json", new TypeReference<List<UserJson>>() {
});
} catch (IOException e) {
//Erreur
}
Lorsqu'il est mappé comme ci-dessus, le Json cible est ʻuserList(ʻList of UserJson Cela devient
).
Si vous définissez getter dans ʻUserJson`, vous pouvez accéder à l'élément avec getter.
Exemple d'accès avec getter
System.out.println(userList.get(1).getName());
//Sortie: amy
tips
Vous pouvez renommer les propriétés à l'aide d'annotations comme suit: (Par défaut, les noms de champ Java sont utilisés)
@JsonProperty("name")
private String firstName;
Lors du mappage à partir de JSON, une erreur se produira s'il existe un champ qui existe dans `JSON mais n'existe pas dans la classe à mapper. Pour éviter cela, écrivez les annotations suivantes dans la cible de mappage.
UserJson.class
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserJson {
...
Recommended Posts