Docs Menu
Docs Home
/ /

확장 JSON

이 가이드 에서는 MongoDB 문서와 상호 작용할 때 확장 JSON 데이터 형식을 사용하는 방법을 학습 수 있습니다.

JSON 객체, 배열, 숫자, 문자열, 부울 및 null 값을 나타내는 사람이 읽을 수 있는 데이터 형식입니다. 이 형식은 MongoDB 데이터를 저장 데 사용하는 형식인 BSON 데이터 유형의 하위 집합만 지원합니다. 확장 JSON 형식은 더 많은 BSON 유형을 지원하며, BSON 의 각 유형에 직접적으로 대응하는 필드 유형 정보를 나타내기 위해 '$' 접두사가 붙은 예약된 키 설정하다 정의합니다.

JSON, BSON 및 확장 JSON 에 대해 자세히 학습 JSON 및 BSON 리소스 및 확장 JSON MongoDB Server 수동 항목을 참조하세요.

MongoDB 확장 JSON BSON 데이터를 나타내는 문자열 형식을 제공합니다. 각 형식은 JSON RFC 를 준수하며 특정 사용 사례를 충족합니다.

다음 표에서는 각 확장 JSON 형식에 대해 설명합니다.

이름
설명

표준

A string format that avoids loss of BSON type information during data conversions.
This format prioritizes type preservation at the loss of human-readability and interoperability with older formats. To specify this mode, pass bsoncxx::ExtendedJsonMode::k_canonical as a mode argument to the to_json() method.

완화

A string format that describes BSON documents with some type information loss.
This format prioritizes human-readability and interoperability at the loss of certain type information. To specify this mode, pass bsoncxx::ExtendedJsonMode::k_relaxed as a mode argument to the to_json() method.

Legacy

A string format that describes BSON documents with some type information loss.
This format matches Relaxed Extended JSON with some exceptions.
The C++ driver uses this mode by default.

참고

C++ 운전자 $uuid b_binary 4문자열에서 확장 JSON 유형을 바이너리 하위 유형 의 객체 로 구문 분석합니다.$uuid 필드 분석에 대한 자세한 내용은 확장 JSON 사양의 $uuid 필드 구문 분석을 위한 특별 규칙 섹션을 참조하세요.

다음 예시에서는 각 확장 JSON 형식으로 표시되는 ObjectId, 날짜, 긴 숫자 필드가 포함된 문서를 보여 줍니다. 원하는 형식의 예시 탭을 클릭합니다.

{
"_id": { "$oid": "573a1391f29313caabcd9637" },
"createdAt": { "$date": { "$numberLong": "1601499609" }},
"numViews": { "$numberLong": "36520312" }
}
{
"_id": { "$oid": "573a1391f29313caabcd9637" },
"createdAt": { "$date": "2020-09-30T18:22:51.648Z" },
"numViews": 36520312
}
{
"_id": { "$oid": "573a1391f29313caabcd9637" },
"createdAt": { "$date": "1601499771648" },
"numViews": 36520312
}

bsoncxx::from_json() 메서드를 호출하여 확장 JSON 문자열을 C++ BSON 문서 로 읽을 수 있습니다. 이 메서드는 확장 JSON 문자열을 구문 분석하고 데이터가 포함된 bsoncxx::document::value 를 반환합니다.

다음 예시 from_json() 메서드를 사용하여 확장 JSON 문자열을 BSON 문서 로 읽는 방법을 보여줍니다.

bsoncxx::document::value doc = bsoncxx::from_json(R"(
{
"_id": {"$oid": "507f1f77bcf86cd799439011"},
"myNumber": {"$numberLong": "4794261"}
}
)");

bsoncxx::to_json() 메서드를 사용하여 확장 JSON 문자열을 쓰기 (write) 수 있습니다. 기본값 으로 이 메서드는 확장 JSON 문자열을 레거시 형식으로 반환하지만, mode 인수를 전달하여 표준 또는 완화 형식을 지정할 수 있습니다.

참고

레거시 버전

레거시 형식 옵션은 C++ 운전자 BSON types를 Libbson Legacy Extended JSON 형식으로 직렬화하도록 지시합니다. 운전자 이 모드를 기본값 모드 로 사용합니다.

자세한 내용은 C 드라이버 API 문서의 레거시 확장 JSON 페이지를 참조하세요.

bsoncxx::to_json() 메서드는 arraydocument를 포함한 여러 핵심 및 표준 라이브러리 유형에 사용할 수 있습니다. 다음 예시 document 값을 표준 형식의 확장 JSON 문자열로 변환합니다.

bsoncxx::builder::basic::document doc_builder;
doc_builder.append(kvp("myNumber", 11223344));
doc_builder.append(kvp("myString", "String value"));
bsoncxx::document::value doc = doc_builder.extract();
std::string json_str =
bsoncxx::to_json(doc, bsoncxx::ExtendedJsonMode::k_canonical);
std::cout << json_str << std::endl;
{"myNumber":{"$numberInt":"11223344"},"myString":"String value"}

이 가이드 에 언급된 유형 및 메서드에 대해 자세히 학습 다음 API 문서를 참조하세요.

확장 JSON 에 대해 자세히 학습 MongoDB Server 매뉴얼에서 MongoDB 확장 JSON (v)을2 참조하세요.

돌아가기

BSON

이 페이지의 내용