POJOのフィールドおよびBeanプロパティに指定できるデータ型を次に示します。
表18-2 POJOのフィールドおよびBeanプロパティに指定できるデータ型(POJOからJSONへのマッピング)
項番 | データ |
---|
1 | プリミティブ | int |
2 | short |
3 | long |
4 | float |
5 | double |
6 | char |
7 | byte |
8 | boolean |
9 | ラッパクラス | Integer |
10 | Short |
11 | Long |
12 | Float |
13 | Double |
14 | Character |
15 | Byte |
16 | Boolean |
17 | java.lang.String |
18 | java.math.BigInteger |
19 | java.math.BigDecimal |
20 | java.util.Date |
21 | java.util.Calendar |
22 | java.lang.Enum |
23 | POJO※1 |
24 | java.util.List<T>※2 |
25 | java.util.Set<T>※2 |
26 | java.util.Map<T,T>※2 |
27 | 項番1~26のどれかの配列 |
- 注※1
- フィールドまたはBeanプロパティとして再帰的にPOJOを持つことができます。サポートされるPOJOの条件については,「18.2 POJOからJSONへのマッピング」を参照してください。
- 注※2
- Tの型は表の項番1~26のどれかになります。
注意事項を次に示します。
- フィールドまたはBeanプロパティが初期化されていない場合,生成されたJSONにマッピングされる値は,それぞれのデータ型のデフォルト値(プリミティブ型ではそれぞれのデフォルト値,オブジェクト型ではnull)になります。
- 表の項番9~27の型の値がnullの場合,生成されるJSONの対応する値にはnullがマッピングされます。
- 表の項番24~27の型の値にnullが含まれている場合,生成されるJSONの対応する値にはnullがマッピングされます。
- 表の項番20または21の型の値がnull以外の場合,生成されるJSONの対応する値はミリ秒で表現される等しい値がマッピングされます。例えば,データ型としてDateが使用されている場合,DateクラスのgetTime()メソッドを呼び出して得られる値がマッピングされます。Calendar型では,CalendarクラスのgetTime()で取得されるDateオブジェクトに対してDateクラスのgetTime()メソッドを呼び出して得られる値がマッピングされます。
- 表の項番26の型の値がnullの場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
- 表の項番27がchar配列またはbyte配列のとき,生成されるJSONの対応する値は,配列ではなくそれぞれ次の値がマッピングされます。
- char配列:配列から生成される文字列
- byte配列:配列から生成されるBase64エンコードされた文字列
例を次に示します。
- 値が{'a','b'}で名称が"bean"であるchar[]型のBeanプロパティは,{"bean":["a","b"]}ではなく{"bean":["ab"]}にマッピングされます。
- 値が{1,2}で名称が"bean"であるbyte[]型のBeanプロパティは{"bean":[1,2]}ではなく{"bean":["AQ=="]}にマッピングされます。