While both classes share the same, thin client-side API, JsonB
stores the data in a decomposed, binary format, whereas Json
stores an exact copy of the RFC 7159 text.
This means that JsonB
is slower to input, but faster to process as it avoids reparsing. Therefore, applications that utilize the structured state of a JSON value should prefer JsonB
.
It also means that the JsonB
stored representation does NOT preserve:
- white space,
- the order of object keys, or
- duplicate object keys.
Note: JsonB
is only applicable to PostgreSQL databases (i.e., those created using DatabaseDialect::POSTGRESQL
).
Constructors
JsonB(JsonB const &)
Regular value type, supporting copy, assign, move.
Parameter | |
---|---|
Name | Description |
|
JsonB const &
|
JsonB(JsonB &&)
Regular value type, supporting copy, assign, move.
Parameter | |
---|---|
Name | Description |
|
JsonB &&
|
JsonB()
A null value.
JsonB(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=(JsonB const &)
Regular value type, supporting copy, assign, move.
Parameter | |
---|---|
Name | Description |
|
JsonB const &
|
Returns | |
---|---|
Type | Description |
JsonB & |
operator=(JsonB &&)
Regular value type, supporting copy, assign, move.
Parameter | |
---|---|
Name | Description |
|
JsonB &&
|
Returns | |
---|---|
Type | Description |
JsonB & |
operator std::string() const &
Conversion to a JSON-formatted string.
operator std::string() &&
Conversion to a JSON-formatted string.