gpt4 book ai didi

java - jackson : How to serialize into an unnamed array

转载 作者:行者123 更新时间:2023-11-30 07:03:11 26 4
gpt4 key购买 nike

这是我的 POJO。

public class FolderPage {

private List<ApplicationIcon> applications;

public List<ApplicationIcon> getApplications() {
return applications;
}

public void setApplications(List<ApplicationIcon> applications) {
this.applications = applications;
}

@JsonCreator
public FolderPage(List<ApplicationIcon> applications) {
super();
this.applications = applications;
}
}

目前它序列化为以下 json { “应用程序”:[{ “应用”: { “id”:“com.microsoft.onenote”, “名称”:“Microsoft OneNote” } }, { “应用”: { "id": "com.microsoft.Office.word", “名称”:“微软Word” } }] }

但是我想将其序列化为未命名的 json 数组,如下所示

[{
"application": {
"id": "com.microsoft.onenote",
"name": "Micrsoft OneNote"
}
}, {
"application": {
"id": "com.microsoft.Office.word",
"name": "Microsoft word"
}
}]

我怎样才能达到同样的效果?

编辑POJO 代表我的应用程序对象

@JsonRootName("application")
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ApplicationIcon extends Icon {

private String id;
private String name;
}

最佳答案

假设ApplicationIcongetId()getName()。您可以使用自定义序列化程序来完成此操作:

public static class FolderPageSearialer extends JsonSerializer<FolderPage> {

@Override
public void serialize(FolderPage o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
List<ApplicationIcon> applications = o.getApplications();
jsonGenerator.writeStartArray(applications.size());
for (ApplicationIcon application : applications) {
jsonGenerator.writeStartObject();
jsonGenerator.writeFieldName("application");
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("id", application.getId());
jsonGenerator.writeStringField("name", application.getName());
jsonGenerator.writeEndObject();
jsonGenerator.writeEndObject();
}
jsonGenerator.writeEndArray();
}
}

并在FolderPage类上添加@JsonSerialize:

@JsonSerialize(using = FolderPage.FolderPageSearialer.class)
public class FolderPage

关于java - jackson : How to serialize into an unnamed array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com