我对Jackson
很新,但我偶然发现了以下问题:
我想将一个简单的对象序列化为其字段数组。 所以考虑下面的课程:
public class UserModel {
private String id;
private String firstName;
private String lastName;
private String email;
private String company;
}
我得到以下json:
{
"id":"cec34b58",
"firstName":"foo",
"lastName":"bar",
"email":"foo@bar.com",
"company":"FooBar"
}
但我想要的是以下内容:
[
"cec34b58",
"foo",
"bar",
"foo@bar.com",
"FooBar"
]
如果有更简单的方法,我想避免使用custom serializer。阅读Jackson Annotations,我不会立即看到允许立即转换模型的内容。 Google只建议将Java Collections
序列化为json,但不要将其从Java Object
序列化为json数组。
答案 0 :(得分:7)
这不需要自定义序列化程序,只需要简单的注释:
@JsonFormat(shape=JsonFormat.Shape.ARRAY)
public class UserModel {
// ...
}
答案 1 :(得分:1)
您的方案相当自定义,因此您必须通过自定义序列化程序来完成。
请注意,我建议您修改它,因为在这种情况下添加/删除新字段/更改顺序会更加棘手,尤其是如果您无法同时释放客户端和服务器。
答案 2 :(得分:0)
您可以在类UserModel上添加方法 toList()和 fromList(),将您的类转换为List或从List转换。您没有使用Jackson序列化UserModel对象,而是序列化列表。