php-enspired/simple-json

json 编码/解码的便捷包装器。

2.0 2021-04-01 02:59 UTC

This package is auto-updated.

Last update: 2024-09-29 05:30:12 UTC


README

简单:json

简单的 包专注于提供直接、简洁的解决方案,以满足常见需求。

Json 是 json 编码/解码的便捷包装器。其主要目的是设置合理的默认值,并使管理编码/解码选项变得简单。

依赖项

需要 php 7.3 或更高版本。

安装

推荐安装方法是通过 Composer:只需 composer require php-enspired/simple-json

基本用法

默认情况下,对象被解码为关联数组,大整数被解码为字符串(而不是转换为浮点数)。

编码数据时,大整数被编码为字符串,"零"分数被保留(而不是编码为整数),并且斜杠和 Unicode 字符不会被转义。为了防止意外的/不可预测的结果,除非对象是 stdClass 或实现了 JsonSerializable,否则对象不会被编码。

编码和解码在出错时都会抛出异常;这不能被覆盖。

Json 定义了一些用于编码/解码选项集的常量。作为便利,这些选项也可以通过静态工厂方法设置。

  • ENCODE_ASCII:默认编码选项,但取消设置 JSON_UNESCAPED_UNICODE
  • ENCODE_HEX:所有 JSON_HEX_* 选项。
  • ENCODE_HTML:默认编码选项,但取消设置 JSON_UNESCAPED_SLASHES
  • ENCODE_PRETTY:默认编码选项,并设置 JSON_PRETTY_PRINT
<?php

use AT\Simple\Json\Json;

// example data
$a = ["foo" => "one", "bar" => "two"];

// basic encoding and decoding (note $assoc = true is the default mode)
$json = Json::default();
$j = $json->encode($a);  // {"foo":"one","bar":"two"}
$a === $json->decode($j);  // bool (true)

// special options - e.g., "pretty" formatting
Json::pretty()->encode($a);
/*
{
    "foo": "one",
    "bar": "two"
}
*/

// decoding objects as stdClass
(new Json([Json::DECODE_ASOOC => false]))->decode($j);
/*
object(stdClass)#1 (2) {
  ["foo"]=>
  string(3) "one"
  ["bar"]=>
  string(3) "two"
}
*/

文档

贡献或寻求帮助

我在 Freenode 的 #php-enspired 频道,或者在 GitHub 上提交问题。欢迎反馈。