基本的な使い方
次のコードはJacksonを使ってJSONをJavaオブジェクトに変換する例です。
package com.example;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
class Student {
private int id;
private String name;
public Student() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
public class JacksonExample {
public static void main(String[] args) throws IOException {
String input = "{\"id\":1,\"name\":\"Tom\"}";
ObjectMapper mapper = new ObjectMapper();
Student student = mapper.readValue(input.getBytes(), Student.class);
System.out.println(student);
}
}
結果は次のようになります。
Student{id=1, name='Tom'}
指定したコンストラクタを使う
@JsonProperty
アノテーションを使うと使用するコンストラクタを指定できます。
package com.example;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
class Student {
private int id;
private String name;
public Student(@JsonProperty("id") int id, @JsonProperty("name") String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
public class JacksonExample {
public static void main(String[] args) throws IOException {
String input = "{\"id\":1,\"name\":\"Tom\"}";
ObjectMapper mapper = new ObjectMapper();
Student student = mapper.readValue(input.getBytes(), Student.class);
System.out.println(student);
}
}