我在 Vert.x 核心包中使用 Jackson API 将 JSON 字符串解码为 java 对象。通常,这几乎适用于所有情况,但仅适用于一个特定用例。我正在从用户输入的表单数据构造 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
我在这里错过了什么吗?任何帮助是极大的赞赏!