2013-06-27 2 views
0

를 통해 실행 된 순환 그래프를 역 직렬화해야합니다. 그런 다음 클라이언트에서 나는이 같은 {@ref} 객체를 디코딩하는 JSOG를 사용 : 나는 서버까지 다시 JSON을 전송하려고 할 때어떻게 현재 내 순환 그래프를 직렬화은이 잭슨 <a href="https://github.com/jsog/jsog-jackson" rel="nofollow">plugin</a></p> <p>을 사용하고 잭슨이 JSOG.stringify (myCyclicalGraph)

JSOG.decode(data) 

문제가 온다. 데이터에 아무 것도하지 않으면 "최대 호출 스택 크기가 초과되었습니다."라는 메시지가 표시됩니다. 이는 js 객체가 주기적이기 때문입니다. 내가 사용하려고 :

JSOG.stringify(data); 

을하지만 잭슨은 모든에 @id 및 @refs을 질식 :

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "@id" 

중 하나가이 작업을 수행하는 방법을 알아 냈습니까?

답변

0

양측이 JSOG 규칙을 지원할 수 있어야합니다. JSON 사양의 일부가 아니며 자동으로 감지 될 수도 없습니다. 그래서 잭슨은 도움없이 그것을 처리 할 수 ​​없습니다.

+0

js 객체가 동일한 참조를 공유하기 때문에 단지 '@ id'와 '{@ref : 1}'을 포함하는 속성을 제거 할 수 없기 때문에 궁금합니다. 그런 다음 순환 참조가있는 객체의 사본 하나가 지속되고 거기에있을 필요도 없습니다. 생각? – testing123

+0

이렇게하면 연결된 그래프가 있는지 DAG인지에 따라 개체의 복사본이 만들어 지거나 작동하지 않을 수 있습니다 (이전에는 문제가 있었지만 후자는 그렇지 않음) – StaxMan