표준 Spring MVC 3x 프레임 워크를 사용하고 내 모델 엔티티를 모든 좋은 관계형 항목 (javax.persistence API)으로 구축했습니다. 내 DB와 통합되었습니다.JSON 객체와 Spring 모델 객체
응용 프로그램이 발전함에 따라 JSON 호출을 지원해야했습니다.
이
, 내 모델 엔티티 층에서 매핑 된 다양한 관계를 감안할 때 (classY-로 classX-> 고급뿐만 아니라> classX)
나는 가장 좋은 방법은에서 무엇 궁금 중복 된 재 참조없이 이러한 모델 클래스 중 일부를 적절한 JSON 객체로 변환합니까?
예 :
{"classX":{"id":"1", "classY":{"id":"2", "classX":{"id":"1", "classY":{"id":"2"...
난에 대한 피드백을 상관 없어 방법론의 몇 가지를 고민하고 샘플 버그 응답 ...
은 기존 모델 클래스를 유지하고 상호 관계를 설정 NULL로 내 ModelMap에 넣기 전에 다시 참조하는 몇 가지 양식이되지 않습니다. (내 생각에 그것의 해킹)
{"classX":{"id":"1", "classY":{"id":"2", "classX":null}}}
재 참조 클래스가없는 기존 모델과 비슷한 JSON 클래스를 다시 작성하십시오 (그러나 재사용 할 수 없다는 것을 의미한다고 생각합니다 ... 원하는 경우 classX-> classY 만 거치지 않고 뒤로 거슬러 올라갈 것입니다.) 데이터 응답을 위해 다른 방법으로 드릴하십시오).
{"jsonClassX": {"id":"1", "jsonClassY":{"id":"2"}}}
모든 컨트롤러 호출에 대한 표준 ModelMap 매핑으로 구성하면됩니다. 재사용 가능한 JSON 클래스의 개념이 없으므로 컨트롤러가 반환 값을 구성하고 구성하는 방식에 따라 달라집니다. 이것은 가장 쉬운 것 같아하지만 (잘라 내기 및 붙여 넣기 외에) 더-재사용 가능한 코드를 의미합니다 ... 그래서
{"x":{"id":"1", "y":{"id":"2"}}} // for controller call 1 {"y":{"id":"2", "x":{"id":"1"}}} // for controller call 2
그 순간 내가 저글링하고있는 옵션은, 나는 않을 것 다른 사람들이 어떻게했는지에 대한 피드백과 약간의 조언을 얻는 마음.
Jackson과 같은 제 3 자 라이브러리에서 직접 발생하거나 직접 번역 한 코드에서 발생합니까? – atrain
안녕하세요 @AaronSheffey, 그냥 표준 설정 구성 파일 'public @ResponseBody Map ...' –
alwinc