# Class Json (3.7.0-rc)

3.7.0-rc 3.6.0 (latest) 3.5.0 3.4.0 3.3.0 3.2.0 2.48.0-rc 2.47.1 2.46.0 2.45.0 2.44.0 2.43.0 2.42.0 2.41.0 2.40.0 2.39.0 2.38.0 2.37.0 2.36.0 2.35.0 2.34.0 2.33.0 2.32.0 2.31.0 2.30.0 2.29.0 2.28.0 2.27.0 2.26.0 2.25.1 2.24.0 2.23.0 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.0 2.15.1 2.14.0 2.13.0 2.12.0 2.11.0 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.

A [`Json`](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Json) value can be constructed from, and converted to a `std::string`. [`Json`](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Json) values 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 construct [`Json`](https://docs.cloud.google.com/cpp/docs/reference/spanner/latest/classgoogle_1_1cloud_1_1spanner_1_1Json) values 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.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
|   | `Json &&` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `Json &` |   |

### operator std::string() const \&

Conversion to a JSON-formatted string.

### operator std::string() \&\&

Conversion to a JSON-formatted string.