[英]Jackson: Serializing object fields to array
我對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"
]
如果有更簡單的方法,我想避免使用自定義序列化程序 。 閱讀Jackson Annotations ,我沒有立即看到允許立即轉換模型的東西。 谷歌只建議將Java Collections
序列化為json,但沒有任何內容可以從Java Object
轉換為json數組。
這不需要自定義序列化程序,只需要簡單的注釋:
@JsonFormat(shape=JsonFormat.Shape.ARRAY)
public class UserModel {
// ...
}
你的方案是相當自定義的,所以你必須通過自定義序列化器的東西。
另請注意,我建議您修改它,因為在這種情況下添加/刪除新字段/更改順序會更加棘手,尤其是如果您無法同時釋放客戶端和服務器。
您可以在類UserModel上添加一個方法toList()和fromList() , 它將您的類轉換為List或從List轉換。 您沒有使用Jackson序列化UserModel對象,而是序列化列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.