이 페이지에서

Qt의 JSON 지원

Qt는 JSON 데이터 처리를 지원합니다. JSON은 자바스크립트에서 파생된 객체 데이터를 인코딩하는 형식이지만, 현재는 인터넷상의 데이터 교환 형식으로 널리 사용되고 있습니다.

Qt의 JSON 지원 기능은 JSON 데이터를 구문 분석, 수정 및 저장할 수 있는 사용하기 쉬운 C++ API를 제공합니다.

JSON 데이터 형식에 대한 자세한 내용은 json.org 및 RFC 8259에서 확인할 수 있습니다.

개요

JSON은 구조화된 데이터를 저장하기 위한 형식입니다. JSON에는 6가지 기본 데이터 유형이 있습니다:

  • bool
  • double
  • string
  • array
  • object
  • null

값은 위의 유형 중 하나를 가질 수 있습니다. 부울 값은 JSON에서 true 또는 false 문자열로 표현됩니다. JSON은 숫자의 유효 범위를 명시적으로 지정하지 않지만, Qt에서의 지원은 double의 유효 범위와 정밀도로 제한됩니다. 문자열은 유효한 유니코드 문자열이면 무엇이든 될 수 있습니다. 배열은 값의 목록이며, 객체는 키/값 쌍의 모음입니다. 객체 내의 모든 키는 문자열이며, 객체에는 중복된 키가 포함될 수 없습니다.

JSON의 텍스트 표현에서는 배열을 대괄호([ ... ])로, 객체를 중괄호({ ... })로 묶습니다. 배열과 객체 내의 항목은 쉼표로 구분됩니다. 객체에서 키와 값을 구분하는 기호는 콜론(:)입니다.

한 사람, 그 사람의 나이, 주소 및 전화번호를 인코딩한 간단한 JSON 문서는 다음과 같을 수 있습니다:

{
    "FirstName": "John",
    "LastName": "Doe",
    "Age": 43,
    "Address": {
        "Street": "Downing Street 10",
        "City": "London",
        "Country": "Great Britain"
    },
    "Phone numbers": [
        "+44 1234567",
        "+44 2345678"
    ]
}

위의 예제는 5개의 키/값 쌍으로 구성된 객체입니다. 값 중 두 개는 문자열이고, 하나는 숫자, 하나는 또 다른 객체이며, 마지막 하나는 배열입니다.

유효한 JSON 문서는 배열이거나 객체이므로, 문서는 항상 대괄호나 중괄호로 시작합니다.

JSON 클래스

모든 JSON 클래스는 값 기반이며 암시적으로 공유되는 클래스입니다.

Qt의 JSON 지원은 다음 클래스로 구성됩니다:

‘게임 저장 및 불러오기’항목도 참조하십시오 .

QJsonArray

JSON 배열을 캡슐화합니다

QJsonDocument

JSON 문서를 읽고 쓰는 방법

QJsonObject

JSON 객체를 캡슐화합니다

QJsonObject::const_iterator

QJsonObject::const_iterator 클래스는 QJsonObject에 대한 STL 스타일의 const 이터레이터를 제공합니다

QJsonObject::iterator

QJsonObject::iterator 클래스는 QJsonObject에 대한 STL 스타일의 비const 이터레이터를 제공합니다

QJsonParseError

JSON 파싱 중 오류를 보고하는 데 사용됩니다

QJsonValue

JSON 내의 값을 캡슐화합니다

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.