hgg/json

编码、解码、验证、处理错误(异常)和美化打印 JSON

v0.1.0 2014-07-23 21:08 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:47:39 UTC


README

Build Status

Json 是一个包含静态方法集合,用于简化 PHP 中处理 JSON。

特性

  • encode 编码为 JSON 字符串,包含错误处理
  • decode 从包含有效 JSON 的字符串或文件路径解码,包含错误处理
  • validate 使用 JSON Schema 验证 JSON 文档
  • pretty print 美化打印 JSON 字符串

安装

注意

这里使用的 json-schema 库版本目前是一个分支,所以您需要将以下内容添加到您的 composer.json 文件中。

    "repositories": [
        {
            "type": "vcs",
            "url": "http://github.com/hglattergotz/json-schema"
        }
    ],

依赖

  • JsonPretty 由 Cam Spiers 开发的 Json 美化打印器
  • JsonSchema 由 Justin Rainbow 开发的 Json Schema 验证库

使用方法

编码

<?php

$data = array(
    'field' => 'value'
);

$jsonString = Json::encode($data);

从字符串解码

$jsonString 的内容解码为关联数组。

<?php

$data = Json::decode($jsonString, true);

从文件解码

$path 文件的内容解码为关联数组。

<?php

$data = Json::decode($path, true);

美化打印

注意,源可以是 JSON 字符串或数组。下面的调用使用默认的缩进 2 个空格。要使用不同的缩进,请将其作为第二个参数传递。

<?php

$prettyJson = Json::prettyPrint($data);

错误处理

不再需要调用 json_last_error() 并评估整数响应代码,decodeencode 方法会抛出一个包含消息以及代码的异常。

<?php

$invalidJson = '{';

try {
    $data = Json::decode($invalidJson);
} catch (HGG\Json\Exception\RuntimeException $e) {
    printf("Error message: %s\n", $e->getMessage());
    printf("Error code: %d\n", $e->getCode());
}

上面的代码示例将输出

Error message: JSON Error - Syntax error, malformed JSON
Error code: 4