承接 truschery/kanon 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

truschery/kanon

最新稳定版本:v1.0.1

Composer 安装命令:

composer require truschery/kanon

包简介

PHP implementation of JSON Canonicalization Scheme (RFC 8785)

README 文档

README

Latest Version on Packagist PHP from Packagist Total Downloads Tests License

A lightweight and strict PHP implementation of the JSON Canonicalization Scheme (JCS) according to RFC 8785.

About the Specification

JSON Canonicalization Scheme (RFC 8785) defines a standard way to serialize JSON data so that logically equivalent data produces identical byte-by-byte output. This is essential for creating digital signatures, hashing JSON payloads, or safely comparing JSON documents.

Key rules of JCS:

  • Object properties are sorted lexicographically by their byte values.
  • Whitespace between tokens is removed.
  • Numbers are serialized in a strict format without trailing zeros.

⚠️ Important Note (PHP Configuration)

For this package to correctly serialize floating-point numbers according to the RFC requirements, your php.ini must have the serialize_precision directive set to -1.

Check your php.ini file:

serialize_precision = -1

Note: In modern PHP versions (7.1+), -1 is usually the default value, which ensures floats are encoded accurately.

Installation

You can install the package via Composer:

composer require truschery/kanon

Usage

Pass your array or object to the canonicalizer to get the RFC 8785 compliant JSON string.

use Truschery\Kanon\Json;

// Unordered array with different data types
$data =[
    'z' => 123.456,
    'a' => 'test',
    'b' =>[
        'foo' => 'bar',
        'baz' => 100
    ]
];

$canonicalJson = Json::canonicalize($data);

echo $canonicalJson;
// Output (keys sorted, no spaces):
// {"a":"test","b":{"baz":100,"foo":"bar"},"z":123.456}

Testing

This package comes with a test suite to ensure strict compliance with the specification. To run the tests, use:

composer test
# or directly:
./vendor/bin/phpunit

References

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 91
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固