나는 어떻게 할 것인지 알고 싶습니다.자바 직렬화/비 직렬화에 대한 안전한 json
Java 데이터 객체가 있습니다. 이 개체는 개체 특성을 포함하는 개체 특성이 포함되어 있습니다 ...
json-io을 사용하여 개체를 serialize합니다. 하지만 deserializing 할 때 개체를 deserialize하지 못하면 데이터를 보호하려고합니다. 그래서 모든 객체를 직렬화하기 전에 각 속성을 json-serialize하는 아이디어가 있습니다. 이 방법은 속성이 deserialize에 실패 할 경우 객체 자체가 안전합니다.
이 나는 물체 {a:v1,b:{ba:v2,bb:{bba:v3,bbb:v4}}}
이있는 경우, 나는이 대신 같은 직렬화된다는 것을 의미합니다 : "{\"a\":\"v1\",\"b\":\"{\\\"ba\\\":\\\"v2\\\",\\\"bb\\\":\\\"{\\\\\\\"bba\\\\\\\":\\\\\\\"v3\\\\\\\",\\\\\\\"bbb\\\\\\\":\\\\\\\"v4\\\\\\\"}\\\"}\"}"
당신은 그것을 읽고 매우 불안하게하는 매우 간단한 객체에 그를 참조하십시오. 더 복잡한 것을 상상해보십시오!
그것에 대해 뭔가하고 싶습니다.하지만 좋은 아이디어는 없습니다. 어쩌면 내가 읽거나 json을 호출하여 함수가 필요할 때 "\"를 제거하고 다시 호출 할 수 있지만 올바른 알고리즘을 찾는 데 성공하지 못하는 것일 수 있습니다. 힌트가 있습니까? 아니면 다른 방법일까요?
고맙습니다.
혼란스러운. 어떻게 실패 할까? JSON 입력을'InputStream'으로 받고 있습니까? 또한 JSON-IO의 팬이 아닙니다. REST 서비스를 작성하는 경우 Jackson 또는 Gson IMO를 기본값으로 사용해야합니다. – Ryan
내 앱의 데이터를 직렬화하는 데 사용합니다. 그것이 파워 포인트의 사본이라고 생각하십시오. json-io가 필드를 복원하려고 할 때 내 앱에 버그가 있으면 실패 할 수 있습니다. 이 경우 전체 json 파일을 낭비 할 수 있습니다. 나는 그것을 피하기 위해이 속임수를 사용합니다. 버그가있는 경우 해당 부분 만 손실됩니다. – Sharcoux
이 모델이 적합합니까? 아니면 일반적인 것으로 작성하고 있습니까? 전자의 경우 이것은 비교적 쉬운 문제입니다. 여러분이해야 할 일은 상기 클래스에 대한 독자적인 커스텀 시리얼 라이저/디시리얼라이저를 작성하는 것입니다. JSON이 그 못생긴 모습을 보여야합니다. BTW ... 라이브러리 전환을 진지하게 고려하십시오. JSON-IO는 유지 보수되지 않았고 내가 언급 한 다른 라이브러리와 거의 비슷하거나 효율적이지 않다. – Ryan