aktuba/json-mapper

用于 json/数组的 OOP 容器

0.1.2 2019-12-01 17:37 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:16 UTC


README

数据数组到对象树的转换库。用于简化 json-api 的实现。

功能

  • 面向对象的数据接口
  • 支持对象的自动处理嵌套结构

使用要求

  • PHP 7.1 及以上

安装

$ composer require aktuba/json-mapper

使用示例

<?php declare(strict_types=1);

use aktuba\JsonMapper\JsonMapper;

require __DIR__.'/../vendor/autoload.php';

$jsonData = <<<JSON
{
	"users": [
		{
			"name": "John",
			"surname": "Smith",
			"age": 24
		},
		{
			"name": "Marry",
			"surname": "Cary",
			"age": 22
		}
	],
	"meta": {
		"result": true,
		"version": "1.0",
		"took": "0.035"
	}
}
JSON;

class User extends JsonMapper
{

	protected const PROPERTIES = [
		'name' => 'string',
		'surname' => 'string',
		'age' => 'int',
	];

}

class Meta extends JsonMapper
{

	protected const PROPERTIES = [
		'result' => 'bool',
		'version' => 'string',
		'took' => 'float',
	];

}

class Data extends JsonMapper
{

	protected const PROPERTIES = [
		'users' => 'User[]',
		'meta' => 'Meta',
	];

}

$data = new Data(json_decode($jsonData, true));
var_dump($data);

更多示例在 examples 目录中