webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Typedefs | Enumerations | Functions | Variables
Json Namespace Reference

JSON (JavaScript Object Notation). More...

Classes

class  BatchAllocator
 
struct  BuiltStyledStreamWriter
 
class  CharReader
 
class  CharReaderBuilder
 Build a CharReader implementation. More...
 
struct  CommentStyle
 Scoped enums are not available until C++11. More...
 
class  DefaultValueArrayAllocator
 
class  DefaultValueMapAllocator
 
struct  DummyArrayAllocatorInitializer
 
struct  DummyMapAllocatorInitializer
 
class  Exception
 
class  FastWriter
 Outputs a Value in JSON format without formatting (not human friendly). More...
 
class  Features
 Configuration passed to reader and writer. This configuration object can be used to force the Reader or Writer to behave in a standard conforming way. More...
 
class  LogicError
 
class  OurCharReader
 
class  OurFeatures
 
class  OurReader
 
class  Path
 Experimental and untested: represents a "path" to access a node. More...
 
class  PathArgument
 Experimental and untested: represents an element of the "path" to access a node. More...
 
class  Reader
 Unserialize a JSON document into a Value. More...
 
class  RuntimeError
 
class  StaticString
 Lightweight wrapper to tag static string. More...
 
class  StreamWriter
 
class  StreamWriterBuilder
 Build a StreamWriter implementation. More...
 
class  StyledStreamWriter
 Writes a Value in JSON format in a human friendly way, to a stream rather than to a string. More...
 
class  StyledWriter
 Writes a Value in JSON format in a human friendly way. More...
 
class  Value
 Represents a JSON value. More...
 
class  ValueConstIterator
 const iterator for object and array value. More...
 
class  ValueIterator
 Iterator for object and array value. More...
 
class  ValueIteratorBase
 base class for Value iterators. More...
 
class  Writer
 Abstract class for writers. More...
 

Typedefs

typedef int Int
 
typedef unsigned int UInt
 
typedef long long int Int64
 
typedef unsigned long long int UInt64
 
typedef Int64 LargestInt
 
typedef UInt64 LargestUInt
 
typedef unsigned int ArrayIndex
 
typedef char UIntToStringBuffer[uintToStringBufferSize]
 
typedef std::auto_ptr< CharReaderCharReaderPtr
 
typedef std::auto_ptr< StreamWriterStreamWriterPtr
 

Enumerations

enum  ValueType {
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue,
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue,
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue
}
 Type of the value held by a Value object. More...
 
enum  CommentPlacement {
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement,
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement,
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement
}
 
enum  ValueType {
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue,
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue,
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue
}
 Type of the value held by a Value object. More...
 
enum  CommentPlacement {
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement,
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement,
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement
}
 
enum  { uintToStringBufferSize = 3*sizeof(LargestUInt)+1 }
 
enum  ValueType {
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue,
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue,
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue
}
 Type of the value held by a Value object. More...
 
enum  CommentPlacement {
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement,
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement,
  commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement
}
 
enum  { uintToStringBufferSize = 3*sizeof(LargestUInt)+1 }
 

Functions

std::istream & operator>> (std::istream &, Value &)
 Read from 'sin' into 'root'. More...
 
std::string JSON_API valueToString (Int value)
 
std::string JSON_API valueToString (UInt value)
 
std::string JSON_API valueToString (LargestInt value)
 
std::string JSON_API valueToString (LargestUInt value)
 
std::string JSON_API valueToString (double value)
 
std::string JSON_API valueToString (bool value)
 
std::string JSON_API valueToQuotedString (const char *value)
 
std::ostream & operator<< (std::ostream &, const Value &root)
 Output using the StyledStreamWriter. More...
 
void throwRuntimeError (std::string const &msg)
 used internally More...
 
void throwLogicError (std::string const &msg)
 used internally More...
 
bool JSON_API parseFromStream (CharReader::Factory const &, std::istream &, Value *root, std::string *errs)
 
std::string JSON_API writeString (StreamWriter::Factory const &factory, Value const &root)
 Write into stringstream, then return string, for convenience. A StreamWriter will be created from the factory, used, and then deleted. More...
 
std::string valueToString (double value, bool useSpecialFloats, unsigned int precision)
 

Variables

const unsigned char & kNullRef = kNull[0]
 

Detailed Description

JSON (JavaScript Object Notation).

Typedef Documentation

◆ ArrayIndex

typedef unsigned int Json::ArrayIndex

◆ CharReaderPtr

◆ Int

◆ Int64

typedef long long int Json::Int64

◆ LargestInt

◆ LargestUInt

◆ StreamWriterPtr

◆ UInt

typedef unsigned int Json::UInt

◆ UInt64

typedef unsigned long long int Json::UInt64

◆ UIntToStringBuffer

typedef char Json::UIntToStringBuffer

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
uintToStringBufferSize 

Constant that specify the size of the buffer that must be passed to uintToString.

Constant that specify the size of the buffer that must be passed to uintToString.

◆ anonymous enum

anonymous enum
Enumerator
uintToStringBufferSize 

Constant that specify the size of the buffer that must be passed to uintToString.

Constant that specify the size of the buffer that must be passed to uintToString.

◆ CommentPlacement [1/3]

Enumerator
commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

◆ CommentPlacement [2/3]

Enumerator
commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

◆ CommentPlacement [3/3]

Enumerator
commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

a comment on the line after a value (only make sense for

numberOfCommentPlacement 

root value)

◆ ValueType [1/3]

Type of the value held by a Value object.

Enumerator
nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

◆ ValueType [2/3]

Type of the value held by a Value object.

Enumerator
nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

◆ ValueType [3/3]

Type of the value held by a Value object.

Enumerator
nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

Function Documentation

◆ operator<<()

std::ostream & Json::operator<< ( std::ostream &  sout,
const Value root 
)

Output using the StyledStreamWriter.

See also
Json::operator>>()

◆ operator>>()

std::istream & Json::operator>> ( std::istream &  sin,
Value root 
)

Read from 'sin' into 'root'.

Always keep comments from the input JSON.

This can be used to read a file into a particular sub-object. For example:

cin >> root["dir"]["file"];

Result:

{
"dir": {
    "file": {
    // The input stream JSON would be nested here.
    }
}
}
Exceptions
std::exceptionon parse error.
See also
Json::operator<<()

◆ parseFromStream()

bool Json::parseFromStream ( CharReader::Factory const &  fact,
std::istream &  sin,
Value root,
std::string errs 
)

Consume entire stream and use its begin/end. Someday we might have a real StreamReader, but for now this is convenient.

◆ throwLogicError()

void Json::throwLogicError ( std::string const &  msg)

used internally

◆ throwRuntimeError()

void Json::throwRuntimeError ( std::string const &  msg)

used internally

◆ valueToQuotedString()

std::string Json::valueToQuotedString ( const char *  value)

◆ valueToString() [1/7]

std::string JSON_API Json::valueToString ( Int  value)

◆ valueToString() [2/7]

std::string JSON_API Json::valueToString ( UInt  value)

◆ valueToString() [3/7]

std::string Json::valueToString ( LargestInt  value)

◆ valueToString() [4/7]

std::string Json::valueToString ( LargestUInt  value)

◆ valueToString() [5/7]

std::string Json::valueToString ( double  value)

◆ valueToString() [6/7]

std::string Json::valueToString ( bool  value)

◆ valueToString() [7/7]

std::string Json::valueToString ( double  value,
bool  useSpecialFloats,
unsigned int  precision 
)

◆ writeString()

std::string Json::writeString ( StreamWriter::Factory const &  factory,
Value const &  root 
)

Write into stringstream, then return string, for convenience. A StreamWriter will be created from the factory, used, and then deleted.

Variable Documentation

◆ kNullRef

const unsigned char& Json::kNullRef = kNull[0]