2012-08-29 2 views
0

내 응용 프로그램에 태그 지정 시스템을 구현 중입니다. 객체를 태그 지정하는 모든 Tags의 주요 목록이 있습니다. 객체는 주 목록의 태그에 대한 참조 인 여러 개의 태그를 가질 수 있습니다.json에서 deserialize 할 때 참조 유지하기.

json으로 파일에 데이터를 저장 한 다음 내 앱이 다시 실행될 때 데이터를로드하면 이러한 참조가 손실됩니다 (tagInMainList == referenceToTag은 보유하지 않습니다).

어떻게 해결할 수 있습니까?

+0

JSON을 사용하면 특별한 경험이 없어도 놀랄 것입니다. (물론 Gson에는 내장 솔루션이 없다고 생각합니다.) 우선 JSON을 피하거나 참조 평등을 유지할 필요를 피함으로써 문제를 피하는 것이 더 나을 것입니다. –

답변

1

지도 검색에 사용 된 키 값만 보유하도록 참조를 느슨하게 연결 한 경우 어떻게됩니까? tagInMainList.equals(keyBasedReferenceToTag) 또는 tagInMainList.getKey().equals(keyBasedReferenceToTag)과 같은 평등을 여전히 지원할 수 있습니다. JSON은 더 간단하고 아마도 더 간결합니다.

1

메모리 사용량 및 기타 무거운 최적화를 최소화해야하는 경우를 제외하고는 신원 정보가 중요합니다. 유감스럽게도 사용자 지정 디시리얼라이저가 필요합니다. 그것으로 당신은 Guaya의 interner을 사용하여 return tagreturn myTagInterner.intern(tag)으로 대체 할 수 있습니다.

+0

@maartinus :'foo.changeSomething()'과'bar'를 참조해야하지만 그렇지 않으면 갱신되지 않을 것이기 때문에 신원에 대해 관심이 있습니다. – JustcallmeDrago

관련 문제