Google Cloud Spanner C++ Client 2.13.0
A C++ Client Library for Google Cloud Spanner
Loading...
Searching...
No Matches
Public Member Functions | List of all members
google::cloud::spanner::JsonB Class Reference

JsonB is a variant of Json (see above). More...

#include <google/cloud/spanner/json.h>

Public Member Functions

 JsonB ()
 A null value. More...
 
 JsonB (std::string s)
 Construction from a JSON-formatted string. More...
 
Regular value type, supporting copy, assign, move.
 JsonB (JsonB const &)=default
 
JsonBoperator= (JsonB const &)=default
 
 JsonB (JsonB &&)=default
 
JsonBoperator= (JsonB &&)=default
 
Conversion to a JSON-formatted string.
 operator std::string () const &
 
 operator std::string () &&
 

Detailed Description

JsonB is a variant of Json (see above).

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:

Note: JsonB is only applicable to PostgreSQL databases (i.e., those created using DatabaseDialect::POSTGRESQL).

Constructor & Destructor Documentation

◆ JsonB() [1/4]

google::cloud::spanner::JsonB::JsonB ( )
inline

A null value.

◆ JsonB() [2/4]

google::cloud::spanner::JsonB::JsonB ( JsonB const &  )
default

◆ JsonB() [3/4]

google::cloud::spanner::JsonB::JsonB ( JsonB &&  )
default

◆ JsonB() [4/4]

google::cloud::spanner::JsonB::JsonB ( std::string  s)
inlineexplicit

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.

Member Function Documentation

◆ operator std::string() [1/2]

google::cloud::spanner::JsonB::operator std::string ( ) &&
inlineexplicit

◆ operator std::string() [2/2]

google::cloud::spanner::JsonB::operator std::string ( ) const &
inlineexplicit

◆ operator=() [1/2]

JsonB & google::cloud::spanner::JsonB::operator= ( JsonB &&  )
default

◆ operator=() [2/2]

JsonB & google::cloud::spanner::JsonB::operator= ( JsonB const &  )
default