假设我有以下java类:
public class A {
@JsonProperty("id")
String id;
@JsonProperty("name")
String name;
@JsonSerialize(using = PropertiesSerializer.class)
@JsonUnwrapped
Properties properties;
}
public class Properties {
List<Property> properties;
}
public class Property {
String key;
String value;
}
class PropertiesSerializer extends JsonSerializer<Properties> {
@Override
public void serialize(Properties properties, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) {
if (properties != null && properties.getProperties() != null) {
properties.getProperties().forEach(property -> {
try {
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField(property.getKey(), property.getValue());
jsonGenerator.writeEndObject();
} catch (IOException e) {
e.printStackTrace();
}
});
}
}
}
我需要的是序列化 Product
对象到csv。当我试着运行它的时候 CSV generator does not support Object values for properties (nested Objects)
错误。添加时 @JsonUnwrappped
注解到较低级别的对象时,我仍然会在某个点上遇到相同的错误。
它不应该忽略所有内容并调用 properties
场?看起来它完全忽略了这个方法。我该怎么修?
顺便说一句,由于xml转换,我无法更改代码结构。
谢谢,
1条答案
按热度按时间gev0vcfq1#
当前代码生成的json如下所示:
我想你只是失踪了
jsonGenerator.writeArrayFieldStart("properties")
在循环和jsonGenerator.writeArrayEnd()
在循环之后。