<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Returns the Legacy Extended JSON representation of a BSON value</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.mongodb.bson-tocanonicalextendedjson.html">MongoDB\BSON\toCanonicalExtendedJSON</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.mongodb.bson-tophp.html">MongoDB\BSON\toPHP</a></div> <div class="up"><a href="ref.bson.functions.html">Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="function.mongodb.bson-tojson" class="refentry"> <div class="refnamediv"> <h1 class="refname">MongoDB\BSON\toJSON</h1> <p class="verinfo">(mongodb >=1.0.0)</p><p class="refpurpose"><span class="refname">MongoDB\BSON\toJSON</span> — <span class="dc-title">Returns the Legacy Extended JSON representation of a BSON value</span></p> </div> <div class="refsect1 description" id="refsect1-function.mongodb.bson-tojson-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">string</span> <span class="methodname"><strong>MongoDB\BSON\toJSON</strong></span> ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$bson</code></span> )</div> <p class="para rdfs-comment"> Converts a BSON string to its <a href="https://docs.mongodb.com/manual/reference/mongodb-extended-json/" class="link external">» Legacy Extended JSON</a> representation. </p> <blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara"> There exist several JSON formats for representing BSON. This function implements the "strict mode" defined in <a href="https://docs.mongodb.com/manual/reference/mongodb-extended-json/" class="link external">» MongoDB Extended JSON</a>, which has been superseded by the canonical and relaxed formats defined in the <a href="https://github.com/mongodb/specifications/blob/master/source/extended-json.rst" class="link external">» Extended JSON Specification</a> and implemented by <span class="function"><a href="function.mongodb.bson-tocanonicalextendedjson.html" class="function">MongoDB\BSON\toCanonicalExtendedJSON()</a></span> and <span class="function"><a href="function.mongodb.bson-torelaxedextendedjson.html" class="function">MongoDB\BSON\toRelaxedExtendedJSON()</a></span>, respectively. </span> </p></blockquote> <div class="warning"><strong class="warning">Warning</strong> <p class="simpara"> <a href="http://www.json.org/" class="link external">» JSON</a> does not support <a href="language.types.float.html#language.types.float.nan" class="link"><strong><code>NAN</code></strong></a> and <a href="function.is-infinite.html" class="link"><strong><code>INF</code></strong></a> and MongoDB's Legacy Extended JSON format does not define an alternative representation for these values (<a href="https://github.com/mongodb/libbson" class="link external">» libbson</a> will output <em>nan</em> and <em>inf</em> literals, which may not be parsed as valid JSON). If you are working with BSON that may contain non-finite numbers, please use <span class="function"><a href="function.mongodb.bson-tocanonicalextendedjson.html" class="function">MongoDB\BSON\toCanonicalExtendedJSON()</a></span> or <span class="function"><a href="function.mongodb.bson-torelaxedextendedjson.html" class="function">MongoDB\BSON\toRelaxedExtendedJSON()</a></span>. </p> </div> </div> <div class="refsect1 parameters" id="refsect1-function.mongodb.bson-tojson-parameters"> <h3 class="title">Parameters</h3> <dl> <dt> <code class="parameter">bson</code> (<span class="type"><a href="language.types.string.html" class="type string">string</a></span>)</dt> <dd> <p class="para"> BSON value to be converted. </p> </dd> </dl> </div> <div class="refsect1 returnvalues" id="refsect1-function.mongodb.bson-tojson-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> The converted JSON value. </p> </div> <div class="refsect1 errors" id="refsect1-function.mongodb.bson-tojson-errors"> <h3 class="title">Errors/Exceptions</h3> <ul class="simplelist"> <li class="member">Throws <a href="class.mongodb-driver-exception-unexpectedvalueexception.html" class="classname">MongoDB\Driver\Exception\UnexpectedValueException</a> if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected <a href="https://github.com/mongodb/libbson" class="link external">» libbson</a> error.</li> </ul> </div> <div class="refsect1 examples" id="refsect1-function.mongodb.bson-tojson-examples"> <h3 class="title">Examples</h3> <div class="example" id="example-1755"> <p><strong>Example #1 <span class="function"><strong>MongoDB\BSON\toJSON()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br />$documents </span><span style="color: #007700">= [<br /> [ </span><span style="color: #DD0000">'null' </span><span style="color: #007700">=> </span><span style="color: #0000BB">null </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'boolean' </span><span style="color: #007700">=> </span><span style="color: #0000BB">true </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'string' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'foo' </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'int32' </span><span style="color: #007700">=> </span><span style="color: #0000BB">123 </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'int64' </span><span style="color: #007700">=> </span><span style="color: #0000BB">4294967295 </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'double' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1.0</span><span style="color: #007700">, ],<br /> [ </span><span style="color: #DD0000">'nan' </span><span style="color: #007700">=> </span><span style="color: #0000BB">NAN </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'pos_inf' </span><span style="color: #007700">=> </span><span style="color: #0000BB">INF </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'neg_inf' </span><span style="color: #007700">=> -</span><span style="color: #0000BB">INF </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'array' </span><span style="color: #007700">=> [ </span><span style="color: #DD0000">'foo'</span><span style="color: #007700">, </span><span style="color: #DD0000">'bar' </span><span style="color: #007700">]],<br /> [ </span><span style="color: #DD0000">'document' </span><span style="color: #007700">=> [ </span><span style="color: #DD0000">'foo' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'bar' </span><span style="color: #007700">]],<br /> [ </span><span style="color: #DD0000">'oid' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">ObjectId</span><span style="color: #007700">(</span><span style="color: #DD0000">'56315a7c6118fd1b920270b1'</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'dec128' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Decimal128</span><span style="color: #007700">(</span><span style="color: #DD0000">'1234.5678'</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'binary' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Binary</span><span style="color: #007700">(</span><span style="color: #DD0000">'foo'</span><span style="color: #007700">, </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Binary</span><span style="color: #007700">::</span><span style="color: #0000BB">TYPE_GENERIC</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'date' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">UTCDateTime</span><span style="color: #007700">(</span><span style="color: #0000BB">1445990400000</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'timestamp' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Timestamp</span><span style="color: #007700">(</span><span style="color: #0000BB">1234</span><span style="color: #007700">, </span><span style="color: #0000BB">5678</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'regex' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Regex</span><span style="color: #007700">(</span><span style="color: #DD0000">'pattern'</span><span style="color: #007700">, </span><span style="color: #DD0000">'i'</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'code' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Javascript</span><span style="color: #007700">(</span><span style="color: #DD0000">'function() { return 1; }'</span><span style="color: #007700">) ],<br /> [ </span><span style="color: #DD0000">'code_ws' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">Javascript</span><span style="color: #007700">(</span><span style="color: #DD0000">'function() { return a; }'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'a' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">]) ],<br /> [ </span><span style="color: #DD0000">'minkey' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">MinKey </span><span style="color: #007700">],<br /> [ </span><span style="color: #DD0000">'maxkey' </span><span style="color: #007700">=> new </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">MaxKey </span><span style="color: #007700">],<br />];<br /><br />foreach (</span><span style="color: #0000BB">$documents </span><span style="color: #007700">as </span><span style="color: #0000BB">$document</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$bson </span><span style="color: #007700">= </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">fromPHP</span><span style="color: #007700">(</span><span style="color: #0000BB">$document</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">MongoDB</span><span style="color: #007700">\</span><span style="color: #0000BB">BSON</span><span style="color: #007700">\</span><span style="color: #0000BB">toJSON</span><span style="color: #007700">(</span><span style="color: #0000BB">$bson</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> { "null" : null } { "boolean" : true } { "string" : "foo" } { "int32" : 123 } { "int64" : 4294967295 } { "double" : 1.0 } { "nan" : nan } { "pos_inf" : inf } { "neg_inf" : -inf } { "array" : [ "foo", "bar" ] } { "document" : { "foo" : "bar" } } { "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } } { "dec128" : { "$numberDecimal" : "1234.5678" } } { "binary" : { "$binary" : "Zm9v", "$type" : "00" } } { "date" : { "$date" : 1445990400000 } } { "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } } { "regex" : { "$regex" : "pattern", "$options" : "i" } } { "code" : { "$code" : "function() { return 1; }" } } { "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } } { "minkey" : { "$minKey" : 1 } } { "maxkey" : { "$maxKey" : 1 } } </pre></div> </div> </div> </div> <div class="refsect1 seealso" id="refsect1-function.mongodb.bson-tojson-seealso"> <h3 class="title">See Also</h3> <ul class="simplelist"> <li class="member"><span class="function"><a href="function.mongodb.bson-fromjson.html" class="function" rel="rdfs-seeAlso">MongoDB\BSON\fromJSON()</a> - Returns the BSON representation of a JSON value</span></li> <li class="member"><span class="function"><a href="function.mongodb.bson-tocanonicalextendedjson.html" class="function" rel="rdfs-seeAlso">MongoDB\BSON\toCanonicalExtendedJSON()</a> - Returns the Canonical Extended JSON representation of a BSON value</span></li> <li class="member"><span class="function"><a href="function.mongodb.bson-torelaxedextendedjson.html" class="function" rel="rdfs-seeAlso">MongoDB\BSON\toRelaxedExtendedJSON()</a> - Returns the Relaxed Extended JSON representation of a BSON value</span></li> <li class="member"><a href="https://docs.mongodb.com/manual/reference/mongodb-extended-json/" class="link external">» MongoDB Extended JSON</a></li> <li class="member"><a href="https://docs.mongodb.com/manual/reference/bson-types/" class="link external">» MongoDB BSON</a></li> </ul> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.mongodb.bson-tocanonicalextendedjson.html">MongoDB\BSON\toCanonicalExtendedJSON</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.mongodb.bson-tophp.html">MongoDB\BSON\toPHP</a></div> <div class="up"><a href="ref.bson.functions.html">Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>