[#BloombergLP-bdljsn-JsonUtil-read-0b7]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdljsn.adoc[bdljsn]::xref:BloombergLP/bdljsn/JsonUtil.adoc[JsonUtil]::read
:relfileprefix: ../../../
:mrdocs:

Load a value&hyphen;semantic representation of JSON text into `result`&period;

== Synopsis

Declared in `&lt;bdljsn&lowbar;jsonutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
int
read(
    xref:BloombergLP/bdljsn/Json.adoc[Json]* result,
    std::istream& input);
----

== Description

Load to the specified `result` a value&hyphen;semantic representation of the JSON text in the specified `input`&period; Optionally specify an `errorDescription` that, if an error occurs, is loaded with a description of the error&period; Optionally specify `options` which allow altering the maximum nesting depth&period; Return 0 on success, and a non&hyphen;zero value if `input` does not consist of valid JSON text or an error occurs when reading from `input`&period; If `options&period;allowTrailingText()` is `false` (the default), then an error will be reported if a valid JSON text is followed by any text that does not consist solely of white&hyphen;space characters&period; If `options&period;allowTrailingText()` is `true`, then this function will return success where a valid JSON document is followed by additional text as long as that text is separated from the valid JSON by a delimiter character (i&period;e&period;, either the JSON text ends in a delimiter, or the text that follows starts with a delimiter)&period; Here, delimiters are white&hyphen;space characters, `&lsqb;&rsqb;`,`&rsqb;`,`&lcub;`,`&rcub;`,`,`, or `&quot;`&period;

== Return Value

0 on success, and a non&hyphen;zero value otherwise

== Parameters

[cols="1,4"]
|===
| Name| Description
| *result*
| object to receive the parsed JSON
| *input*
| stream supplying JSON text
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
