18.3.2 指定できるデータ型
POJOのフィールドおよびBeanプロパティに指定できるデータ型を次に示します。
項番 |
データ |
|
---|---|---|
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<K,V>※2 |
|
27 |
項番1〜26のどれかの配列※2,※3 |
要素を設定するときの注意事項を次に示します。
-
JSONフォーマットに次の誤りがある場合,JsonParseExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
数値,文字列,配列,オブジェクト,true,falseまたはnullではない値が含まれている場合
-
二つのオブジェクトがコンマで区切られていない場合
-
トークンの間に許可されていない文字が使用されている場合(許可されている文字はスペース,ラインフィード,キャリッジリターン,水平タブ)
-
数値の形式が不正な場合(12,1.2eE8,0X3F7Aなど)
-
-
データ型が数値(表の項番1〜5,7,9〜13,15)のフィールドまたはBeanプロパティに対応するJSONフォーマットの値が数値でない場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
- 〈この項の構成〉
-
(1) int型(プリミティブ型)
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,int型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はint型の範囲内の数値である必要があります。値がint型の範囲外の場合,動作は保証されません。
(2) short型(プリミティブ型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,short型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はshort型の範囲内の数値である必要があります。値がshort型の範囲外の場合,動作は保証されません。
(3) long型(プリミティブ型)
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,long型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はlong型の範囲内の数値である必要があります。値がlong型の範囲外の場合,動作は保証されません。
(4) float型(プリミティブ型)
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,float型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はfloat型の範囲内の数値である必要があります。値がfloat型の範囲外の場合,動作は保証されません。
(5) double型(プリミティブ型)
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,double型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はdouble型の範囲内の数値である必要があります。値がdouble型の範囲外の場合,動作は保証されません。
(6) char型(プリミティブ型)
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,char型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はchar型の範囲内の数値である必要があります。値がchar型の範囲外の場合,動作は保証されません。
(7) byte型(プリミティブ型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,byte型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はbyte型の範囲内の数値である必要があります。値がbyte型の範囲外の場合,動作は保証されません。
(8) boolean型(プリミティブ型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,boolean型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値にtrue,false(大文字と小文字を区別します)以外が設定された場合,JAX-RSエンジンの動作は定義されません。
(9) Integer型(ラッパクラス型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,nullがマッピングされます。
-
対応するJSONフォーマットの値はInteger型の範囲内の数値である必要があります。値がInteger型の範囲外の場合,動作は保証されません。
(10) Short型(ラッパクラス型)
-
対応するJSONフォーマットの値が空の文字列の場合,Short型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットの値はShort型の範囲内の数値である必要があります。値がShort型の範囲外の場合,動作は保証されません。
(11) Long型(ラッパクラス型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,nullがマッピングされます。
-
対応するJSONフォーマットの値はLong型の範囲内の数値である必要があります。値がLong型の範囲外の場合,動作は保証されません。
(12) Float型(ラッパクラス型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,nullがマッピングされます。
-
対応するJSONフォーマットの値はFloat型の範囲内の数値である必要があります。値がFloat型の範囲外の場合,動作は保証されません。
(13) Double型(ラッパクラス型)
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,nullがマッピングされます。
-
対応するJSONフォーマットの値はDouble型の範囲内の数値である必要があります。値がDouble型の範囲外の場合,動作は保証されません。
(14) Character型(ラッパクラス型)
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,Char型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値はChar型の範囲内の数値である必要があります。値がchar型の範囲外の場合,動作は保証されません。
(15) Byte型(ラッパクラス型)
-
対応するJSONフォーマットの値が空の文字列の場合,Short型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットの値はShort型の範囲内の数値である必要があります。値がShort型の範囲外の場合,動作は保証されません。
(16) Boolean型(ラッパクラス型)
-
対応するJSONフォーマットの値が空の文字列の場合,Boolean型のデフォルト値で初期化されます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットの値にtrue,false(大文字と小文字を区別します)以外が設定された場合,JAX-RSエンジンの動作は定義されません。
(17) java.lang.String型
-
対応するJSONフォーマットの値が空の文字列の場合,空の文字列がマッピングされます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットの値に引用符(")が含まれている場合,エスケープされている必要があります。エスケープされていない場合はJsonParseExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値に\n,\r,\t,\bなどの制御文字が含まれている場合,エスケープされている必要があります。エスケープされていない場合はJsonParseExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値に制御文字の\uが含まれている場合,エスケープされている必要があります。また,\uに続く文字列は16進数の数値である必要があります。これらの条件に反する場合はJsonParseExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
(18) java.math.BigInteger型,java.math.BigDecimal型
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,nullがマッピングされます。
-
対応するJSONフォーマットの値が数値以外の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
(19) java.util.Date型,java.util.Calendar型
-
対応するJSONフォーマットの値がnullまたは空の文字列の場合,nullがマッピングされます。
-
サポートされている標準のフォーマットは次のとおりです。
-
yyyy-MM-dd'T'HH:mm:ss.SSSZ
-
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
-
EEE, dd MMM yyyy HH:mm:ss zzz
-
yyyy-MM-dd
それぞれのパターン文字の意味と例を次の表に示します。
要素
意味
例
yyyy
年を4桁の数値で表します。
2013
MM
月を2桁の数値で表します。
04
MMM
月を3文字の文字列で表します。
Apr
dd
月における日を2桁の数値で表します。
30
EEE
曜日を3文字の文字列で表します。
Sun
'T'
固定文字です。
−
HH
1日における時を2桁の数値で表します。
23
mm
分を2桁の数値で表します。
30
ss
秒を2桁の数値で表します。
10
SSS
ミリ秒を3桁の数値で表します。
978
'Z'
固定文字です。
−
Z
RFC 822で定義されているタイムゾーンを表します。
-0530
zzz
標準時間を表します。
IST
DateまたはCalendarのフォーマットにおける各パターン文字,特にロケールに依存する「E」および「M」については,Java SE仕様のSimpleDateFormatクラスに関する情報を参照してください。
-
-
対応するJSONフォーマットの値がサポートされないフォーマットの場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がlong型の範囲の数値の場合,つまりDate型,またはCalendar型に対応する値がミリ秒で表現されている場合,それぞれそのミリ秒で初期化されたDate型,またはCalendar型のオブジェクトがマッピングされます。値がlong型の範囲外の場合,動作は保証されません。
-
例えば,対応するJSONフォーマットの値が1346850421185の場合,Date型のフィールドまたはBeanプロパティには,dateパラメタに1346850421185を指定してDateクラスのDate(long date)コンストラクタを呼び出した結果(Dateオブジェクト)がマッピングされます。Calendar型のフィールドまたはBeanプロパティには,同じようにDateオブジェクトを生成し,さらにdateパラメタにそのDateオブジェクトを指定してCalendarクラスのsetTime(Date date)メソッドの呼び出した結果(Calendarオブジェクト)がマッピングされます。
(20) java.lang.Enum型
-
対応するJSONフォーマットの値が空の文字列の場合,JsonMappingExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットの値がEnum型に含まれない場合,JsonMappingExceptionがスローされます。例外ハンドリングついては「18.3.3 例外ハンドリング」を参照してください。
(21) java.util.List<T>型
-
対応するJSONフォーマットの値が空のリスト([])の場合,空のリストがマッピングされます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットのリストにnullが含まれている場合,マッピングされるList<T>型のフィールド,またはBeanプロパティの対応する要素にはnullが設定されます。
-
対応するJSONフォーマットのリストに含まれる値は,Tに設定する型の条件に準拠している必要があります。条件については,「18.3.2 指定できるデータ型」のそれぞれの型の注意事項を参照してください。条件に反する場合の動作はそれぞれの注意事項に記載されているとおりです。
(22) java.util.Set<T>型
-
対応するJSONフォーマットの値が空のリスト([])の場合,空のセットがマッピングされます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットのリストにnullが含まれている場合,マッピングされるSet<T>型のフィールド,またはBeanプロパティの対応する要素にはnullが設定されます。
-
対応するJSONフォーマットのセットに含まれる値は,Tに設定する型の条件に準拠している必要があります。条件については,「18.3.2 指定できるデータ型」のそれぞれの型の注意事項を参照してください。条件に反する場合の動作はそれぞれの注意事項に記載されているとおりです。
(23) java.util.Map<K,V>型
-
対応するJSONフォーマットの値が空のマップ({})の場合,空のマップがマッピングされます。
-
対応するJSONフォーマットの値がnullの場合,nullがマッピングされます。
-
対応するJSONフォーマットのマップにキーとしてnullが含まれている場合,JsonParseExceptionがスローされます。例外ハンドリングについては「18.3.3 例外ハンドリング」を参照してください。
-
対応するJSONフォーマットのマップに値としてnullが含まれている場合,マッピングされるMap<K,V>型のフィールド,またはBeanプロパティの対応する値にはnullが設定されます。
-
対応するJSONフォーマットのマップに含まれるキーおよび値は,それぞれK,Vに設定する型の条件に準拠している必要があります。条件については,「18.3.2 指定できるデータ型」のそれぞれの型の注意事項を参照してください。条件に反する場合の動作はそれぞれの注意事項に記載されているとおりです。