A simple representation for the Spanner JSON type: a lightweight, text-based, language-independent data interchange format.
JSON (the JavaScript Object Notation) defines a small set of formatting rules for the portable representation of structured data. See RFC 7159.
AJsonvalue can be constructed from, and converted to astd::string.Jsonvalues can be compared (by string) for equality, and streamed.
There is no syntax checking of JSON strings in this interface. The user is expected to only constructJsonvalues from well-formatted strings.
Constructors
Json(Json const &)
Regular value type, supporting copy, assign, move.
Parameter
Name
Description
Json const &
Json(Json &&)
Regular value type, supporting copy, assign, move.
Parameter
Name
Description
Json &&
Json()
A null value.
Json(std::string)
Construction from a JSON-formatted string.
Note that there is no check here that the argument string is indeed well-formatted. Error detection will be delayed until the value is passed to Spanner.
Parameter
Name
Description
s
std::string
Operators
operator=(Json const &)
Regular value type, supporting copy, assign, move.
Parameter
Name
Description
Json const &
Returns
Type
Description
Json &
operator=(Json &&)
Regular value type, supporting copy, assign, move.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis document details the \u003ccode\u003eJson\u003c/code\u003e class within the Google Cloud Spanner C++ client library, covering versions from 2.11.0 up to 2.37.0-rc.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eJson\u003c/code\u003e class represents a lightweight, text-based, language-independent data interchange format for Spanner data.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eJson\u003c/code\u003e values can be constructed from and converted to \u003ccode\u003estd::string\u003c/code\u003e objects, allowing for simple manipulation and representation.\u003c/p\u003e\n"],["\u003cp\u003eThe class supports standard value operations like copy, assignment, and move, but lacks syntax checking, requiring users to provide well-formatted JSON strings.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version for the \u003ccode\u003eJson\u003c/code\u003e class is 2.37.0-rc, and this is the most recent version listed in the document, with the document also containing many other older versions.\u003c/p\u003e\n"]]],[],null,["# Class Json (2.11.0)\n\nVersion 2.11.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.41.0](/cpp/docs/reference/spanner/2.41.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.40.0](/cpp/docs/reference/spanner/2.40.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.39.0](/cpp/docs/reference/spanner/2.39.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.38.0](/cpp/docs/reference/spanner/2.38.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.37.0](/cpp/docs/reference/spanner/2.37.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.36.0](/cpp/docs/reference/spanner/2.36.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.35.0](/cpp/docs/reference/spanner/2.35.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.34.0](/cpp/docs/reference/spanner/2.34.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.33.0](/cpp/docs/reference/spanner/2.33.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.32.0](/cpp/docs/reference/spanner/2.32.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.31.0](/cpp/docs/reference/spanner/2.31.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.30.0](/cpp/docs/reference/spanner/2.30.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.29.0](/cpp/docs/reference/spanner/2.29.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.28.0](/cpp/docs/reference/spanner/2.28.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.27.0](/cpp/docs/reference/spanner/2.27.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.26.0](/cpp/docs/reference/spanner/2.26.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.25.1](/cpp/docs/reference/spanner/2.25.1/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.24.0](/cpp/docs/reference/spanner/2.24.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.23.0](/cpp/docs/reference/spanner/2.23.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.22.1](/cpp/docs/reference/spanner/2.22.1/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.21.0](/cpp/docs/reference/spanner/2.21.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.20.0](/cpp/docs/reference/spanner/2.20.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.19.0](/cpp/docs/reference/spanner/2.19.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.18.0](/cpp/docs/reference/spanner/2.18.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.17.0](/cpp/docs/reference/spanner/2.17.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.16.0](/cpp/docs/reference/spanner/2.16.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.15.1](/cpp/docs/reference/spanner/2.15.1/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.14.0](/cpp/docs/reference/spanner/2.14.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.13.0](/cpp/docs/reference/spanner/2.13.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.12.0](/cpp/docs/reference/spanner/2.12.0/classgoogle_1_1cloud_1_1spanner_1_1Json)\n- [2.11.0](/cpp/docs/reference/spanner/2.11.0/classgoogle_1_1cloud_1_1spanner_1_1Json) \nA simple representation for the Spanner JSON type: a lightweight, text-based, language-independent data interchange format. \nJSON (the JavaScript Object Notation) defines a small set of formatting rules for the portable representation of structured data. See RFC 7159.\n\nA [`Json`](/cpp/docs/reference/spanner/2.11.0/classgoogle_1_1cloud_1_1spanner_1_1Json) value can be constructed from, and converted to a `std::string`. [`Json`](/cpp/docs/reference/spanner/2.11.0/classgoogle_1_1cloud_1_1spanner_1_1Json) values can be compared (by string) for equality, and streamed.\n\nThere is no syntax checking of JSON strings in this interface. The user is expected to only construct [`Json`](/cpp/docs/reference/spanner/2.11.0/classgoogle_1_1cloud_1_1spanner_1_1Json) values from well-formatted strings.\n\nConstructors\n------------\n\n### Json(Json const \\&)\n\nRegular value type, supporting copy, assign, move.\n\n### Json(Json \\&\\&)\n\nRegular value type, supporting copy, assign, move.\n\n### Json()\n\nA null value.\n\n### Json(std::string)\n\nConstruction from a JSON-formatted string. \nNote that there is no check here that the argument string is indeed well-formatted. Error detection will be delayed until the value is passed to Spanner.\n\nOperators\n---------\n\n### operator=(Json const \\&)\n\nRegular value type, supporting copy, assign, move.\n\n### operator=(Json \\&\\&)\n\nRegular value type, supporting copy, assign, move.\n\n### operator std::string() const \\&\n\nConversion to a JSON-formatted string.\n\n### operator std::string() \\&\\&\n\nConversion to a JSON-formatted string."]]