ずにシリアライズ:ジャクソンは私はこのようなJSON構造持つプロパティ
{
"name": "LS",
"stocks": [
{
"x": 1500234365000,
"y": 0.000000000000
},
{
"x": 1500234427000,
"y": 0.000015154000
},
{
"x": 1500234481000,
"y": 0.000015518740
},
{
"x": 1500234548000,
"y": 0.008415518740
}
]
}
をしかし、私は私のJSONがこのようになっていることが必要です。
{
"name": "LS",
"stocks": [
[1500234365000,0.000000000000],
[1500234427000,0.000015154000],
[1500234481000,0.000015518740],
[1500234548000,0.008415518740]
]
}
マイマッピングクラス:
public class View implements Serializable {
private static final long serialVersionUID = 1636349140413063122L;
@Getter @Setter
private String name;
@JsonInclude(Include.NON_EMPTY)
@Getter @Setter
private List<Data> rates = new ArrayList<Data>();
}
データ配列:
public class Data implements Serializable {
private static final long serialVersionUID = 2926346626990185211L;
@JsonProperty("x")
@Getter @Setter
private Long date;
@JsonProperty("y")
@Getter @Setter
private BigDecimal value;
それを行うネイティブな方法はありますか?私はトラフのstackoverflowとjacksonのドキュメントを検索しますが、プロパティ名を削除する方法は何も見つかりませんでした。
可能かどうかわかりません。あなたはwriteStartArray
を使用する必要があり、配列を書き込むには、データクラスのcustom serializer
public class ItemSerializer extends StdSerializer<Item> {
public ItemSerializer() {
this(null);
}
public ItemSerializer(Class<Item> t) {
super(t);
}
@Override
public void serialize(
Item value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeNumberField("id", value.id);
jgen.writeStringField("itemName", value.itemName);
jgen.writeNumberField("owner", value.owner.id);
jgen.writeEndObject();
}
}
を書くことができますとにかく
、ジャクソン
と春ブーツを使用してイム
を? –
Joltは次のようなものに最適です:https:// github。com/bazaarvoice/jolt –
JSONフィールドの名前を 'stocks'にしたい場合は、Javaフィールドの名前を' rates'にしないでください.JSON値を配列の配列(2D配列)にしたい場合は、 JavaフィールドをBeanオブジェクトの 'List'にしますが、リストのリスト、配列のリスト、または配列の配列にします。次に、カスタムシリアライザを作成する必要はありません。 – Andreas