如果我使用jackson dataformat xml序列化JsonNode的ArrayList,它会产生以下结果:
<ArrayList><item>...</item><item>...</item></ArrayList>
我想把它读出来:
<events><event>...</event><event>...</event></events>
我尝试过使用自定义序列化程序,并确实给了我
public class ArrayListSerializer extends JsonSerializer<ArrayList<JsonNode>> {
@Override
public void serialize(ArrayList<JsonNode> value, JsonGenerator gen,
SerializerProvider serializers)
throws IOException, JsonProcessingException {
gen.writeStartObject();
for (JsonNode node : value) {
gen.writeObjectField("event", node);
}
gen.writeEndObject();
}
@Override
public Class<ArrayList<JsonNode>> handledType() {
@SuppressWarnings("unchecked")
Class<ArrayList<JsonNode>> typeClass = (Class<ArrayList<JsonNode>>)(Class<?>)List.class;
return typeClass;
}
}
有什么建议吗?谢谢。
您还可以考虑使用注释定义XML元素名称。这是一个例子:
public class JacksonXmlArray {
static class Document {
@JsonProperty
@JacksonXmlElementWrapper(localName = "events")
@JacksonXmlProperty(localName = "event")
List<String> events = Arrays.asList("a", "b");
}
public static void main(String[] args) throws JsonProcessingException {
final XmlMapper xmlMapper = new XmlMapper();
System.out.println(xmlMapper.writeValueAsString(new Document()));
}
}
输出:
<Document xmlns=""><events><event>a</event><event>b</event></events></Document>
但我只有这个 jackson fasterxml Anotation中是否需要添加任何配置。
我必须处理一个遗留的Spring5[not boot]项目,并且我面临类似的问题,比如Jackson-DataFormat-XML将@responsebody转换为XML,所以我开始使用XMLMapper-input是application/text[这是XML字符串],而out是json在控制器中。但我一添加依赖项就看到了
问题内容: 嗨,我需要使用Jackson数据格式XMLMapper从JAVA创建XML。XML应该像 但我总是喜欢使用额外的“ <地址> 问题答案: 试试下面的代码
我使用了SpringBoot1.5版。2和Maven默认pom。xml 因为SpringBoot没有来自Maven:jackson dataformat xml的XmlMapper,所以我在pom中添加了这个依赖项。xml 并检查项目的Jackson依赖项,它们都有相同的版本2.8。7(最新)。 当我运行应用程序时,它无法启动,因为在SpringBoot中发现了NoSuchMethod错误。 对这
问题内容: 使用Jackson XmlMapper注释,如何将XML反序列化为pojo? 我试图使用这样的东西: 当我尝试使用XmlMapper的readValue()时,出现以下错误: 问题答案: 您的课程与您的课程不符。结构比您想象的要简单。请参见以下示例: 简单用法: 上面的程序打印(适用于您): 也可以看看: jackson-dataformat-xml。 主页:Jackson XML d