JSONを初めて使用したので、概要だけまとめておく。
おおむね、下記の3パターンを階層的に組み合わせていく。
オブジェクト型
json
{
"id": "001",
"name": "taro"
}
java
// マッピング
JsonSampleBean bean = mapper.readValue(json, JsonSampleBean.class);
// Beanの定義
package com.example.app.bean.json.request;
import lombok.Getter;
import lombok.Setter;
/**
* JSONマッピング用のオブジェクト。
*
* @author start
*/
public class JsonSampleBean {
/** ID */
@Getter
@Setter
private String id;
/** 名称 */
@Getter
@Setter
private String name;
}
リスト(配列)型
json
{
"sampleList": [
{
"id": "001",
"name": "taro"
},
{
"id": "002",
"name": "jiro"
}
]
}
java
// マッピング
JsonSampleListBean list = mapper.readValue(listJson, JsonSampleListBean.class);
// Beanの定義
package com.example.app.bean.json.request;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
/**
* JSONマッピング用のオブジェクト。
*
* @author start
*/
public class JsonSampleListBean {
/** リスト */
@Getter
@Setter
private List<JsonSampleBean> sampleList;
}
リスト(配列)型_リストのみ
json
[
{
"id": "001",
"name": "taro"
},
{
"id": "002",
"name": "jiro"
}
]
java
// マッピング
List<JsonSampleBean> list = mapper.readValue(listJson, new TypeReference<List<JsonSampleBean>>(){});
// Beanの定義
// 省略
マップ型
json
{
"sampleMap":{
"key1": {
"id": "001",
"name": "taro"
},
"key2": {
"id": "002",
"name": "jiro"
}
}
}
java
// マッピング
JsonSampleMapBean map = mapper.readValue(mapJson, JsonSampleMapBean.class);
// Beanの定義
package com.example.app.bean.json.request;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
/**
* JSONマッピング用のオブジェクト。
*
* @author start
*/
public class JsonSampleMapBean {
/** マップ */
@Getter
@Setter
private Map<String, JsonSampleBean> sampleMap;
}
マップ型_マップのみ
json
{
"key1": {
"id": "001",
"name": "taro"
},
"key2": {
"id": "002",
"name": "jiro"
}
}
java
// マッピング
Map<String, JsonSampleBean> map = mapper.readValue(mapJson, new TypeReference<LinkedHashMap<String,JsonSampleBean>>(){});
// Beanの定義
// 省略