belt / 物
正确对象遍历
v0.1
2014-10-25 17:20 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-09-24 03:49:17 UTC
README
正确对象遍历
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 节点也实现了 ArrayAccess
和 Iterator
,这使得您的工作更快!
$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。