belt/

正确对象遍历

v0.1 2014-10-25 17:20 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:49:17 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score

正确对象遍历

Belt.Matter 是一个工具库,使处理 JSON 对象变得更加愉快(实际上要多得多)。它将 JSON 字符串、对象或数组转换为可以无警告或错误遍历的正确树结构。

安装

通过 Composer。

$ composer require belt/matter

使用方法

当我们在 PHP 中使用 JSON 时,我们通常必须使用 JSON 对象的属性。这确实很棒,但如果属性不存在,则不起作用。

$object = json_decode('{"foo":"bar","bar":[1, 2, 3, 4]","baz":"lorem ipsum"}');
$object->foo;       // "bar"
$object->something; // BOOM!

这并不真的很好,对吧?我们每次想要使用属性时都必须加上保护措施。

这就是 Matter 发挥作用的地方!

// Before
$object = json_decode('{"foo":"bar"}');
$object->foo;       // "bar"
$object->something; // BOOM!

// After
use Belt\Matter;

$object = Matter::fromJson('{"foo":"bar"}');
$object->get('foo')->get();         // "bar"
$object->get('something')->get();   // null

Matter 为您所做的,是将给定的 JSON 字符串或值转换为树结构。这使得您可以安全地请求树节点,而不用担心抛出的错误或警告。

您可以随时访问 JSON 对象中的任何值。

$object = Matter::fromJson('{"foo":[1, 2, 3, 4],"bar":"lorem"}');
$object->get('foo')->get(0)->get(); // 1
$object->get('foo')->get(4)->get(); // null
$object->get('bar')->get();         // "lorem"

$object = Matter::fromJson('[{"name":"Alice"},{"name":"Bob"}]');
$object->get(0)->get('name')->get(); // "Alice"
$object->get(1)->get('name')->get(); // "Bob"
$object->get(2)->get('name')->get(); // null

每个 Matter 节点也实现了 ArrayAccessIterator,这使得您的工作更快!

$users = Matter::fromJson('[{"name":"Alice"},{"name":"Bob"}]');
$users[0]['name']->get(); // "Alice"
$users[1]['name']->get(); // "Bob"
$users[2]['name']->get(); // null

foreach ($users as $user) {
    $name = $user['name']->get();
}

此外,您还可以安全地访问对象的属性,而无需使用 get 来检索属性节点。

$object = Matter::fromJson('{"foo":{"bar":{"baz":42}}}');
$object->foo->bar->baz->get(); // 42
$object->baz->bar->foo->get(); // null

贡献

请参阅 CONTRIBUTING

许可

请参阅 LICENSE