2014-06-12 3 views
1

Jackson 2.4를 사용 중이며 d3.js.에 의해 처리 될 데이터를 생성해야합니다. 내가 가진 내 자바 모델에서Jackson Json serialization

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

:

d3.js 내 JSON 값이 같은 형식이어야 할

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; 

     ...   
    } 
} 

이없는 직렬화를 위해, 그렇습니다 만 직렬화입니다 잭슨 주석을 사용하여 원하는대로 json을 생성 할 수있는 방법이 있습니다. 지금은 다음과 같이 생성합니다.

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

감사합니다.

답변

3

가장 간단한 방법은 @JsonValue입니다. 당신의 Entry 클래스에이 추가보십시오 :

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

(당신이 그냥 자바 스크립트 숫자로 변환 얻을 것입니다 때문에, double[]을 반환하거나, 오토 박싱을 사용하지만,이 IMO 조금 명확 수 있습니다.)