Php/docs/function.mongodb.bson-tocanonicalextendedjson

来自菜鸟教程
跳转至:导航、​搜索

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.


错误/异常


范例

Example #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(1234, 5678) ],    [ '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 } }

参见