(mongodb >=1.3.0)
MongoDB\BSON\toCanonicalExtendedJSON β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Canonical Extended JSON-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ BSON-Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠΎΠ΄ Π£Π‘Π’ΠΠ ΠΠ Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅ΡΡΠΈΠΈ 1.20.0, Π° Π² Π²Π΅ΡΡΠΈΠΈ 2.0 ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π»ΡΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ MongoDB\BSON\Document::toCanonicalExtendedJSON().
ΠΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ BSON-ΡΡΡΠΎΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ » в ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΌ JSON-ΡΠΎΡΠΌΠ°ΡΠ΅. Π ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π² ΡΡΠ΅ΡΠ± ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΡΠ΄Π°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ². Π ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² BSON-ΡΠΎΡΠΌΠ°Ρ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΎΡΡΠ°Π½ΡΡΡΡ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ.
bson (string)ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ JSON-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π» BSON-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| PECL-ΠΌΠΎΠ΄ΡΠ»Ρ mongodb 2.0.0 | Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ. |
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ BSON-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Canonical Extended JSON ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ MongoDB\BSON\toCanonicalExtendedJSON()
<?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 } }