gpt4 book ai didi

java - Jackson Annotation 序列化时删除属性名称的选项

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:41 25 4
gpt4 key购买 nike

大家好,我想在将 Pojo 序列化为 json 时删除属性名称。我有以下类(class)

public class Field {

private List<SubFieldItems> subFieldItems;

public List<SubFieldItems> getSubFieldItems() {
return subFieldItems;
}

public void setSubFieldItems(List<SubFieldItems> subFieldItems) {
this.subFieldItems = subFieldItems;
}
}

和 SubFieldItems 类:

        public class SubFieldItems {
@JsonPropertyOrder

private String name;
private List<String> items;


public SubFieldItems(String name, List<String> items) {
this.name = name;
this.items = items;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List<String> getItems() {
return items;
}

public void setItems(List<String> items) {
this.items = items;
}

//tried doing this
/* @JsonValue
@Override
public String toString() {
return "{" +
" \"name\":" + "\"" + name + "\"" +
",\" items\":" + items +
'}';
}*/
}

当我序列化时,json 输出是

{
"field": {
"subFieldItems": [
{
"name": "brands",
" items": []
}
]
}
}

但我想要像这样没有属性名称的 subFieldItems 值:

   {
"field": {
[
{
"name": "brands",
" items": []
}
]
}
}

我可以使用什么 Jackson 注释,我已经尝试在 toString 方法中使用 @JsonValue 来强制执行注释中的操作,但我总是得到奇怪的结果。请任何帮助表示赞赏。谢谢

最佳答案

你想要的JSON无效,也许这就是你想要的:

{
"field": [
{
"name": "brands",
"items": []
}
]
}

(请注意,我已经删除了 "field": 之后的大括号及其匹配的右大括号)。

在这种情况下,您可能会找到 @JsonValue annotation有用:

@JsonValue: per-property marker to indicate that the POJO should serialization is to be done using value of the property, often a java.lang.String (like annotation toString() method).

试试这个:

public class Field {

private List<SubFieldItems> subFieldItems;

@JsonValue
public List<SubFieldItems> getSubFieldItems() {
return subFieldItems;
}

public void setSubFieldItems(List<SubFieldItems> subFieldItems) {
this.subFieldItems = subFieldItems;
}
}

关于java - Jackson Annotation 序列化时删除属性名称的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585217/

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