提问人:jacob1989 提问时间:8/22/2023 最后编辑:Sergey Tsypanovjacob1989 更新时间:8/22/2023 访问量:51
如何在没有数组括号的情况下将对象添加到列表中
How to add objects to list without having array brackets
问:
我有一个 for 循环,我在其中向对象添加一些属性,最后我需要一个字符串(将其作为查询参数传递)
我需要
{"items":[{"itemsCode":"item1","isAvailable":false}],"isActive":false},{"items":[{"entryCode":"item2","isSelected":true}],"isActive":false}
当我尝试时
List<List> itemsList= new ArrayList<>();
itemsList.add(new Items(items, isBoolean));
ObjectMapper mapper = new ObjectMapper();
String itemsJson = mapper.writeValueAsString(itemsList);
POJO公司
public class Items {
private List<Item> items;
private Boolean isBoolean;
我明白了:
[{"items":[{"itemsCode":"item1","isAvailable":false}],"isActive":false},{"items":[{"entryCode":"item2","isSelected":true}],"isActive":false}]
请帮助如何摆脱数组括号,但保持将这些对象添加到for循环中的列表中的约定
答:
0赞
Sergey Tsypanov
8/22/2023
#1
[]
表示一个数组,因此,如果序列化的顶级对象是,则无法避免拥有它们。
如果你想将顶级项目作为普通对象,你需要重写代码,再添加一个 POJO:List
public class ItemsContainer {
private List<Items> itemsList;
}
public class Items {
private List<Item> items;
private Boolean isBoolean;
}
List<Items> itemsList= new ArrayList<>();
itemsList.add(new Items(items, isBoolean));
ItemContainer container = new ItemContainer();
container.setItemsList(itemsList);
ObjectMapper mapper = new ObjectMapper();
String itemsJson = mapper.writeValueAsString(container);
评论
0赞
jacob1989
8/22/2023
这是个好主意,但它将 ItemContainer 添加到前面 - >{"container":[{"items":[{"itemsCode":"item1","isAvailable":false}],"isActive":false},{"items":[{"entryCode":"item2","isSelected":true}],"isActive":false}]}
0赞
Sergey Tsypanov
8/22/2023
否则,您无法避免,因为您正在序列化[]
Collection
评论
List<List> itemsList= new ArrayList<>();
itemsJson = itemsJson.substring(1, itemsJson.length() - 1);
Item
ObjectMapper