qjsonobject 예제

qjsonobject 예제

그것은 우리의 모범을 결론지습니다. 보시다시피 Qt의 JSON 클래스를 사용하면 직렬화가 매우 간단하고 편리합니다. 예를 들어 QDataStream을 통해 QJsonDocument 및 친구를 사용할 때의 장점은 사람이 읽을 수 있는 JSON 파일을 얻을 뿐만 아니라 코드를 다시 작성하지 않고도 필요한 경우 바이너리 형식을 사용할 수 있다는 것입니다. 다음은 C ++ 및 Qt로 JSON을 조작하는 방법의 예입니다. 이 예제에서는 JSON 및 바이너리 형식에서 간단한 게임을 저장하고 로드하는 방법을 보여 줍니다. 이 특별한 경우 QFileDialog는 기록 가능한 파일의 경로와 열려 있는 파일을 얻는 데 사용됩니다. 물론 기존 파일을 조작할 때 새 텍스트만 추가할 수 있으며 올바른 JSON 문서를 연 다음 텍스트를 추가할 수 있습니다. 그러나 예를 들어, 나는 더 많은 것이 필요하지 않다고 생각합니다. Qt5를 사용하면 Qt에서 JSON 파일을 읽고 쓸 수있는 새로운 API가 있습니다. 마지막 날에 나는이 API를 가지고 놀 수있는 기회를 가졌는데, 나는 JSON에서 다른 데이터 세트를 가져 와서 내보내기를 구현했다. Qt는 설명서에서 JSON에 대한 매우 좋은 시작 페이지를 가지고 있으며, 이미 JSON 파일에 대한 데이터의 저장 및 로드를 보여주는 예제를 가지고 있습니다. 첫 번째 예제의 개체와 달리 이번에는 개체의 모든 멤버를 반복하고 키와 값을 가져옵니다.

어느 쪽이든 개체에 액세스할 수 있습니다. JSON 개체에서 단일 값을 읽는 것은 []연산자(]연산자)를 통해 쉽게 수행할 수 있습니다. 회담은 원거리 용을 통해 쉽게 접근 할 수있는 QJsonArray 내부에 저장됩니다. 배열의 각 값이 개체이기 때문에 첫 번째 단계는 각 토크에 대해 이 루트 개체를 가져오는 것입니다. 완전히 추출 된 후 용기에 밀려 나게됩니다. 때로는 문서의 특정 위치에서 기대할 수있는 유형의 종류를 잘 모르는 다음 isArray, isObject (…) 함수는 찾을 수있는 문서의 버전을 찾는 데 도움이됩니다. 예를 들어 배열에서 php 쓰기 encode_json과의 차이점을 보았으며 때로는 주석이 배열로 인코딩되지만 대부분 개체로 인코딩됩니다. QJsonObject는 또한 반복기 인터페이스와 같은 STL을 제공하여 JSON 개체의 내용을 반복할 수 있습니다. 크립토 화폐. 이에 대한 설명은, QStringQJsonValue, 이에 대한 설명은 다음과 같습니다. 이에 대한 설명은 다음과 같습니다. 맵에 키 키가 있는 항목이 없는 경우 함수는 constEnd()를 반환합니다.

“귀하의 답변 게시”를 클릭하면 서비스 약관, 개인 정보 보호 정책 및 쿠키 정책에 동의하면 JSON 목록을 쉽게 저장할 수 있습니다. QJsonObject 대신 QJsonArray를 사용하고 다른 QList와 마찬가지로 새 값을 추가하십시오. 이에 대한 설명은 다음과 같습니다. 마지막으로, 우리는 함께 우리의 모든 저장 JSON 지식을 넣어 다중 수준의 JSON 트리를 저장하려고합니다. 다시 말하지만 write() 함수는 반대로 제외하면 read() 함수와 유사합니다. 우리에게 특히 관심은 읽기 및 쓰기 기능 구현입니다 : loadGame()에서 저장된 게임을로드 할 때 가장 먼저 할 일은 저장 된 형식에 따라 저장 파일을 여는 것입니다. JSON에 대한 “save.json”과 바이너리에 대한 “save.dat”. 파일을 열 수 없는 경우 경고를 인쇄하고 false를 반환합니다. 이제 우리는 더 깊은 JSON 파일을 시도 할 것입니다. 이것은 개체와 배열을 포함하는 개체입니다: 당연히 saveGame()은 loadGame()과 매우 비슷합니다. 형식에 따라 파일 확장문을 결정하고 경고를 인쇄하고 파일 열기가 실패할 경우 false를 반환합니다.

그런 다음 게임 개체를 QJsonDocument에 작성하고 QJsonDocument::toJson() 또는 QJsonDocument::toBinaryData()로 호출하여 지정된 형식에 따라 게임을 저장합니다.