0

我在 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.1Java 8

我在这里错过了什么吗?任何帮助是极大的赞赏!

4

0 回答 0