gries/json-resolver

一个简单的工具,用于在编码/解码 JSON 时解析对象/对象树

1.0.0 2018-04-09 07:49 UTC

This package is auto-updated.

Last update: 2024-08-24 18:48:06 UTC


README

JsonResolver 是一个简单的类,允许您递归地将对象树编码/解码为 JSON,而无需处理 stdClasses。

这是通过将原始类注入 JSON 作为 "json_resolve_class" 属性来实现的。

安装

JsonResolver 可以通过 composer 安装。

{
    "require": {
        "gries/json-resolver": "dev-master"
    },
}

用法

支持所有普通的 PHP 对象,唯一的要求是实现 \JsonSerializable 接口。

当前功能

  • 自动将对象解码回其之前的类。
  • 如果它们实现了 \JsonSerializable 接口,自动将相关对象解码回其之前的类。
  • 如果它们的值实现了 \JsonSerializable 接口,自动解码数组/可遍历对象。
  • 为之前未使用 JsonResolver 编码的对象提供回退方法。

示例用法

<?php

$book = new Book(); // JsonSerializeable
$author = new Author(); // JsonSerializeable
$author->addBook($book);    // author has a property books that is a array or TraversableInterface

$resolver = new JsonResolver();

$json = $resolver->encode($author);
$author = $resolver->decode($json);

get_class($author); // Author
get_class($author->getBooks()->getFirst()); // Book

有关更多示例,请参阅 示例 部分。