在Jackson中将json反序列化为带引号的字符串,不带注释



我有一个这样的类。

class MyClass {
String config;
// ... other fields, getters, setters ...
}

config字符串将作为JSON来自请求体中的REST端点,如下所示。。

"config": {
"field1": "value1",
"field2": 2,
"field3": true
}
// other fields of MyClass

我需要反序列化MyClass,使上面的JSON字符串被放在引号中,如下所示。

"config": "{
"field1": "value1",
"field2": 2,
"field3": true
}"

我不能修改这个类,因为它正被其他项目使用。因此,我不能在类上使用@JsonDeserialize或任何注释。

我尝试将以下属性设置为ObjectMapper

mapper.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, false)
.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

还有其他方法吗,也许可以使用ObjectMapper以这种方式对其进行反序列化。我也在使用SpringBoot,所以我欢迎使用SpringBootJackson的方式来做这件事。

您可以使用JsonNode,Jackson JsonNode类,com.fasterxml.Jackson.databind.JsonNode是Jackson的JSON树模型(对象图模型(,如下使用:

String content = jsonNode.get("data").textValue();

最新更新