International PHP Conference Munich 2021

MongoDB\BSON\toCanonicalExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toCanonicalExtendedJSONReturns the Canonical Extended JSON representation of a BSON value

説明

MongoDB\BSON\toCanonicalExtendedJSON(string $bson): string

Converts a BSON string to its » Canonical Extended JSON representation. The canonical format prefers type fidelity at the expense of concise output and is most suited for producing output that can be converted back to BSON without any loss of type information (e.g. numeric types will remain differentiated).

パラメータ

bson (string)

BSON value to be converted.

返り値

The converted JSON value.

エラー / 例外

例1 MongoDB\BSON\toCanonicalExtendedJSON() example

<?php

$documents 
= [
    [ 
'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' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 
'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 
'binary' => new MongoDB\BSON\Binary('foo'MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 
'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 
'timestamp' => new MongoDB\BSON\Timestamp(12345678) ],
    [ 
'regex' => new MongoDB\BSON\Regex('pattern''i') ],
    [ 
'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 
'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 
'minkey' => new MongoDB\BSON\MinKey ],
    [ 
'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach (
$documents as $document) {
    
$bson MongoDB\BSON\fromPHP($document);
    echo 
MongoDB\BSON\toCanonicalExtendedJSON($bson), "\n";
}

?>

上の例の出力は以下となります。

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

参考

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top