2014-07-23 2 views
0

NINJA FRAMEWORK 컨트롤러에서 JSON을 반환하는 동안 사용자 지정 형식의 JSON을 반환하는 방법은 무엇입니까?Ninja Framework 사용자 지정 형식의 JSON 반환

return Results.json().render(MyPOJO); 

MyPOJO 클래스

@Entity 
    public class MyPOJO { 
     private String Name; 
     private String Value; 

     public String getName() { 
      return Name; 
     } 
     public void setName(String Name) { 
      this.Name = Name; 
     } 
     public String getValue() { 
      return Value; 
     } 
     public void setValue(String Value) { 
      this.Value = Value; 
     } 
    } 

현재 JSON 출력

[{"Name":"Person1", "Value":"Value1"}, {"Name":"Person2", "Value":"Value2"}] 

사용자 정의 JSON 출력 (필수)

[{"1":"Person1", "2":"Value1"}, {"1":"Person2", "2":"Value2"}] 
+1

을 그리고 : 그냥 그렇게 @JsonProperty 사용할 수 있습니까? json'['문자는 배열 안에 이미 있음을 나타내므로 색인을 가져와야합니다. 또한 이렇게하면 json 결과가 잘못된 json 객체로 변환되어 나중에 문제가 발생할 수 있습니다. –

+0

친애하는 Jorge에게 필요한 출력은 datatables (www.datatables.net)의 표준 json 입력입니다. 또한 키를 제거하고 색인으로 교체하면 많은 수의 레코드를 가져올 때 네트워크 사용량이 크게 줄어 듭니다. 또한 jsonlint.com을 통해 출력물을 확인했으며 형식이 정확하고 유효합니다. – SRCM

+1

죄송합니다, 귀하의 json 출력을 잘못 읽었습니다. 나는 "1": "Name": "Person1", "2": "Value": "Value1"} "로 읽었는데, 마치"1 "은 그 데이터의 색인을 의미합니다. 네, 맞습니다. 이것은 유효한 Json 객체입니다. 이 경우 ObjectMapper를 사용하고 CustomSerializer를 구현해야합니다. Ninja FrameWork는 Jackson을 사용합니다. 그것을 여기에서보십시오 : http://wiki.fasterxml.com/JacksonFeatureModules –

답변

1

호르헤 잘입니다 - 닌자 그냥 물건을 직렬화 잭슨을 사용하여 -의 모든 음식을 사용할 수 있습니다. Jackson은 엔티티의 구문 분석 및 렌더링을 사용자 정의합니다.

해결책은 간단합니다. 당신이 필요 왜

@Entity 
public class MyPOJO { 
    private String Name; 
    private String Value; 

    @JsonProperty("1") 
    public String getName() { 
     return Name; 
    } 
    public void setName(String Name) { 
     this.Name = Name; 
    } 

    @JsonProperty("2") 
    public String getValue() { 
     return Value; 
    } 
    public void setValue(String Value) { 
     this.Value = Value; 
    } 

}

+0

감사합니다. Raph. 그건 내가 원하는만큼 정확하게 작동 했어! – SRCM

관련 문제