1

Jackson 2.4 を使用しており、d3.js で処理するデータを生成する必要があります。

d3.js は、json の値を次のような形式にする必要があります。

values : [[0, 13.5],[1, 2.5],[2, 5],[3, 41.2]]

私のJavaモデルには次のものがあります:

public class Series {

    private String key;
    private List<Entry> values;

    ...

    public void addEntry(int x, double y) {
        values.add(new Entry(x, y));
    }

    public class Entry {
        private int x;
        private double y;

        ...        
    }
}

これはシリアライゼーション専用であり、デシリアライゼーション用ではないため、Jackson アノテーションを使用して json を必要に応じて生成する方法はありますか?

values : [{x: 0, y: 13.5},{x: 1, y: 2.5},{x: 2, y: 2, 5},{x: 3, y: 41.2}]

ありがとう、

4

1 に答える 1

3

最も簡単な方法は、 を使用すること@JsonValueです。Entryこれをクラスに追加してみてください:

@JsonValue
public Object[] jsonArray() {
    return new Object[]{Integer.valueOf(x), Double.valueOf(y)};
}

(これは単に JavaScript の数値に変換されるか、オートボクシングを使用するため、 を返すこともできますがdouble[]、これは少し明確な IMO です。)

于 2014-06-12T15:51:04.533 に答える