簡體   English   中英

傑克遜:將對象字段序列化為數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM