JSON要求を整数値で送信すると、受理フィールドがString型の場合は自動的にJava側の文字列に変換されます。 JSON処理用にJersey Jackson APIを使用しています。 例えば、Jsonの整数値が自動的に文字列値に変換されます
JSON要求:
{
"executable":1
}
ここで私は、文字列型の実行可能な変数に整数値を送信しています。 しかし、整数値を受け入れ、それを文字列に変換しています。
私の要件はデータ型の厳密な検証です。
JSON要求を整数値で送信すると、受理フィールドがString型の場合は自動的にJava側の文字列に変換されます。 JSON処理用にJersey Jackson APIを使用しています。 例えば、Jsonの整数値が自動的に文字列値に変換されます
JSON要求:
{
"executable":1
}
ここで私は、文字列型の実行可能な変数に整数値を送信しています。 しかし、整数値を受け入れ、それを文字列に変換しています。
私の要件はデータ型の厳密な検証です。
最後に私の要求に応じて変更することができます。 私の要件は、JSONスキーマに対してJSONリクエストを検証することでした。 JSONリクエストは文字列として提供されるため、直接検証できないため、リクエストを文字列として受け取り、json-schema-validatorを使用してスキーマに対して検証します。
jsonオブジェクトの値はすべて文字列です。あなたはそれを自分自身に投げる必要があります。
Integer.valueOf(STRING_YOU_WANT_TO_CONVERT);
JsonDeserializerも使用できます。ここに例があります:Error in Android JsonDeserializer when returning response
真ですが、送信されたjson文字列の検証が必要です。 –
何とかJsonスキーマを使ってそれを行うことはできますか? –
あなたは両方の方法で検証できます。スキーマで検証するとどういう意味ですか? – Alikbar
JSON文字列を送信しています。 JSON内のすべてがString上にあります。これをJAVA側でintに変換することができます。 –
JAVA側で明示的な型変換がないと、この検証の方法はありますか? –
ええ、あなたのJSONに応じてエンティティを作成することができますし、ObjectMapper(例えば、)を使用することができます。変換を使用する必要はありません。 –