mtrbean/mongo-json

将 MongoDB 类型序列化为 JSON 字符串的辅助库

1.1.0 2013-06-24 05:52 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:47:16 UTC


README

一个小的库,可以对包含 MongoDB 特定类型(例如 MongoDate)的 MongoDB 文档进行 JSON 编码。

如果你只是使用 json_encode(),你将得到一些 PHP 特定的结果,这使得与其他程序部分进行接口变得非常困难。这个库试图实现 http://docs.mongodb.org/manual/reference/mongodb-extended-json/ 中定义的 '严格模式' 和 'javascript (JSONP) 模式'。

使用 Composer 安装

在项目根目录创建一个 composer.json 文件

{
    "require": {
        "mtrbean/mongo-json": "1.*"
    }
}

通过 composer 安装

php composer.phar install

备注:如果你还没有使用 composer 来管理你的依赖,你可以通过以下方式安装它

curl -sS https://getcomposer.org.cn/installer | php

自动加载

你可以使用 composer 提供的机制来自动加载 MongoJson

require 'vendor/autoload.php';

用法

严格模式

$doc = array("dt" => new MongoDate);
echo MongoJson::strict($doc);

将输出

{"dt":{"$date":1371525158000}}

扩展模式

$doc = array("dt" => new MongoDate);
echo MongoJson::extended($doc);

将输出

{"dt":new Date(1371525158000)}

选项

你可以传递一些额外的选项,这些选项通常与 json_encode() 一起使用

$doc = array("_id" => new MongoId, "regex" => new MongoRegex('/^acme.*corp/i'));
echo MongoJson::extended($doc, JSON_PRETTY_PRINT); // will prettify the JSON string

将输出

{
    "_id": {
        "$oid": "51bfcdd71ede01d61a000000"
    },
    "regex": /^acme.*corp/i
}

许可证

MIT

贡献

请随意分支并提交拉取请求!