2017-11-22 20 views
0

json 객체 배열이있는 json 파일이 있습니다. 나는 rapidjson C++을 사용하고있다.json 객체를 파일에 추가 할 수있는 RapidJSON C++ 효율적이고 확장 가능한 방법

내가이 파일 안에 JSON 배열에 새로운 객체를 추가 할

현재 내가하는 일은 내가 FILEREAD 스트림을 사용하여 JSON 개체에 전체 파일을 읽어이고 나는 새로운 멤버 (새 JSON 개체를 추가) 내가 전에 읽은 그 문서의 배열 안에 AddMember를 사용하여. 이제 파일 안의이 새 객체를 덮어 쓰고 새 객체에 대한 프로세스를 반복합니다.

이 솔루션은 확장 성이 없습니다. 누군가 rapidjson 또는 원시 파일 스트림을 사용하여 다른 솔루션을 지적 할 수 있습니까? 도움을 주시면 감사하겠습니다. 인터넷을 통해 볼 수 있지만 행운은 없습니다.

json을 사용하여 파일에 점진적으로 추가하는 것과 같은 것이 있습니다. 또는 다른 모든 확장 가능한 솔루션 때문에 내 파일 크기가 매우 커질 것이므로 전체 파일을 매번 읽은 다음 새 개체를 추가 한 다음 전체 파일을 다시 작성하면 메모리와 CPU 시간이 낭비됩니다. 이 하나

도움 제발

+0

닫기] 또는} 직전에 개체를 추가하려면 파일을 검토하고 하위 개체를 추가하고 닫기 태그를 추가 할 수 있습니다. – Phil1970

답변

0

그위한 기성품 라이브러리가 있는지 잘 모르겠지만, 당신이 그것을 할 것을 결정하는 경우에 자신 불가능하지 않습니다. 몇 가지 단계를 통해 다음을 수행 할 수 있습니다.

1) RAM에 모든 JSON을로드하십시오. 2) JSON을 추가하고 로그 파일에 저장하는 모든 요청을받습니다. 3) 로그 작성 요청 후 RAM에 JSON 업데이트4) 모든 x 초 블록이 변경되고 모든 JSON을 디스크에 쓰고 로그 파일을 지우십시오. 5 당신이 JSON 파일을 작성할 때 재 작성하지 않음)

1) 충돌 후 시작시 로그 파일 (확인) 및 로그 2를 요청 적용) 해제는 6) 고토 2

또한 최적화 ㄱ 수 변경 완전히 끝났지 만 추가가 끝나고 새 부분 만 쓰는지 확인하십시오. 어떻게 들리는가요?