2012-07-27 3 views
0

JsonSerializer를 사용하여 개체를 JSON String으로 변환하지만 순서가 잘못되었습니다. 속성은 알파벳순으로 자동 정렬되지만 클래스에 나열된 순서대로 표시하려고합니다 (예 : 'endPoint'가 'startPoint'앞에 표시되어서는 안 됨).JsonSerializer 필드 순서 (알파벳순을 원하지 않음) - Java

내가 JsonSerializer를 호출 할 때. 나는 4 가지 메소드 (toJava 또는 toJson) 만 볼 수있다. 주문을 포함 시키려고했으나 제대로 작동하지 않습니다. 제대로하지 않았습니다. 내가하고 있어요 방법은 다음과 같이이다 :

return new String[]{"errorDescription", "searchResultRecord.billOfLadingNumber", 
"searchResultRecord.bookingNumber", "searchResultRecord.advancedManifest", 
"searchResultRecord.inboundCustomsClearanceStatus", "searchResultRecord.cargoReleaseStatus", "searchResultRecord.freightChargeReleaseStatus", 
"searchResultRecord.container.containerNumber", "searchResultRecord.container.latestEvent.event", 
"searchResultRecord.container.latestEvent.location", "searchResultRecord.container.latestEvent.time"}; 

이 포함되지 obj.obj.attr 부분이 볼 수 있듯이. 그러나이 코드를 실행하려고하면 출력 문자열에 "errorDescription"만 표시됩니다. 나는 "attribute"없이 "searchResultRecord"를 시도했으나 출력에서 ​​속성 중 2 개만 보여주었습니다. x

알파벳 순서가 아닌 순서를 수정하는 방법을 알고 싶습니다. 모든 온라인 예제는 더 접근하기 쉬운 메소드를 가진 클래스의 이전 버전에서 온 것 같습니다 ~ 어떤 정보에 감사드립니다.

답변

2

당신은 당신이 @XmlRootElement으로 정의 된 클래스에

@XmlType(propOrder={"startPoint", "endPoint"}) 

를 사용하여 시도 할 수 있습니다. propOrder에 정의 된대로 원하는 속성과 다른 속성이 정렬됩니다.

관련 문제