将Java中的对象列表序列化为json



当前我正在尝试使用Jackson将对象列表序列化到数组。这里的场景是,如果列表只包含一个元素,那么列表应该序列化为对象,而不是数组。有这样的规定吗?

我创建了一个Java模型,并使用下面的代码串行化为JSON

A testObject = new A();
ObjectMapper mapper = new ObjectMapper();           
String json = mapper.writeValueAsString(testObject);
System.out.append (json)

数据模型

class A{
private B b;
}
Class B{
private ArrayList<C> c;
}
Class c
{
private int i;
private String test;
}

找到一个SerializationFeatureWRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED,通过它我们可以在JSON 中获得上述场景

这就是您想要的吗?

String json = mapper.writeValueAsString(!CollectionUtils.isEmpty(testObject) && testObject.size()==1? testObject.get(0):testObject);

最新更新