2013-06-09 3 views
2

FlexJSON 2.1을 Play Framework와 함께 사용하는 경우 어떻게 커스텀 오더를 사용합니까? 지금 당장 가지고 있어요 :기본적으로 알파벳순으로 주문한 FlexJSON

public String toJsonString() { 
    // Include id & name, exclude all others. 
    JSONSerializer ser = new JSONSerializer().include(
      "id", 
      "firstName", 
      "lastName", 
      "email", 
      "authToken", 
      "dob", 
      "home_zip", 
      "gender", 
    ).exclude("*").prettyPrint(true); 
    return ser.serialize(this); 
} 

그리고 알파벳순으로 인쇄됩니다.

내가 게시물 this 찾았지만 @XMLRootElement로 정의 된 클래스가 없습니다. FlexJSON에 맞춤 주문을 사용하는 방법은 무엇입니까?

답변

2

주문은 데이터 구조 자체에서만 파생됩니다. 순서 (즉, List, TreeSet, TreeMap)를 사용하는 데이터 구조에는 순서가 있습니다. 객체 또는 HashMap 순서 내의 필드는 보장되지 않습니다. 요컨대, 자연 질서 이외의 것에 명시 적으로 부과 된 명령은 없다. 원하는 경우 기본 직렬화 변환기를 재정의하여 순서를 지정할 수 있습니다. ObjectTransformer와 MapTransformer를 하위 클래스 화하고 순서를 지정하여 시작할 수 있습니다.

JSON 데이터 구조를 주문하는 것은 자바 스크립트에서 객체 내의 필드도 순서가 없기 때문에 이상하게 보입니다. 이것이 왜 중요 할 지 상상할 수 없습니다.

+0

정말 가독성과 호기심 때문이었습니다. 답변 해주셔서 감사합니다! – eliot

+1

주문은 테스트 케이스에서 중요 할 수 있습니다. 다양한 VM 버전 및 공급 업체에 매핑하고 다르게 반복합니다. – igr