小编Lun*_*ove的帖子

将带有特殊字符的 JSON 反序列化为字符串

我正在尝试解析一个看起来像这样的 json 文件

{
  "foo": "v2",
  "bar": [
    "abc/bcf<object@twenty>.xyz",
    "abc/fgh<object@thirtu>.xyz"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我目前的代码是这样的:

Config.java

private static final ObjectMapper OBJECT_MAPPER;

    static {
        OBJECT_MAPPER = new ObjectMapper();
     OBJECT_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        OBJECT_MAPPER.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
        OBJECT_MAPPER.enableDefaultTyping();
    }

@JsonCreator
    public Config(
            @JsonProperty(value = "foo", required = true) final String version,
            @JsonProperty(value = "bar") final List<String> barTypes) {
     // rest of constructor
}

public static Config fromJson(final Reader reader)
            throws IOException {
        return OBJECT_MAPPER.readValue(reader, Config.class);
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Failed to parse type 'abc/bcf<object@twenty>.xyz' (remaining: '<object@twenty>.xyz'): Cannot locate class 'abc/bcf', …
Run Code Online (Sandbox Code Playgroud)

java json jackson jackson-databind

6
推荐指数
1
解决办法
777
查看次数

标签 统计

jackson ×1

jackson-databind ×1

java ×1

json ×1