Vert.x コア バンドルで Jackson API を使用して、JSON 文字列を Java オブジェクトにデコードしています。通常、これはほとんどすべてのケースで機能しますが、1 つの特定のユース ケースで機能します。ユーザーが入力したフォーム データから JSON 文字列を作成し、以下の行を使用してそれを Java オブジェクトにマップしています。
MyClass myClass = io.vertx.core.json.Json.mapper.readValue(jsonString, MyClass.class)
MyClass.java
public class MyClass{
private String ID;
private String description;
//getter and setter methods
}
入力文字列
{
"description": "“success”,\n “data”: [\n {\n “severity”: “2\",\n “createdby”: “Online user\",\n “product”: “Google map”,\n “description”: “test”,",
"ID": "74085652"
}
フィールドの値description
が別の JSON 文字列の場合、マッピングは例外で失敗します。
com.fasterxml.jackson.databind.JsonMappingException: Unexpected character ('“' (code 8220 / 0x201c)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name
これらの構成を追加しようとしましcom.fasterxml.jackson.core.JsonParser.Feature
たが、うまくいきませんでした。
Json.mapper.configure(ALLOW_UNQUOTED_CONTROL_CHARS, true);
Json.mapper.configure(ALLOW_UNQUOTED_FIELD_NAMES, true);
Json.mapper.configure(ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
Vert.x 3.4.1とJava 8を使用しています
ここで何か不足していますか?どんな助けでも大歓迎です!