码神之路:Perl篇

Mojo::JSON::Pointer

2017-09-27  本文已影响8人  JSON_NULL

简介

Mojo::JSON::Pointer JSON指针,提供JSON数据的检索,是RFC 6901 的一个实现。

use  Mojo::JSON::Pointer;
my $pointer = Mojo::JSON::Pointer->new({foo => [23, 'bar']});
say $pointer->get('/foo/1');
say 'Contains "/foo".' if $pointer->contains('/foo');

属性

Mojo::JSON::Pointer 仅实现了一个属性 data。用于获取或设置为Mojo::JSON::Pointer服务的JSON结束的数据。

my $data = $pointer->data;
$pointer = $pointer->data({foo => 'bar'});

方法

Mojo::JSON::Pointer继承了Mojo::Base中所有的方法,并实现了以下方法。

contains

my $bool = $pointer->contains('/foo/1');

检查Mojo::JSON::Pointer的data属性中是否包含参数中给定的“JSON指针”标识的值。

# True
Mojo::JSON::Pointer->new('just a string')->contains('');
Mojo::JSON::Pointer->new({'♥' => 'mojolicious'})->contains('/♥');
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5]})->contains('/foo');
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5]})->contains('/baz/1');

# False
Mojo::JSON::Pointer->new({'♥' => 'mojolicious'})->contains('/☃');
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5]})->contains('/bar');
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5]})->contains('/baz/9');

get

my $value = $pointer->get('/foo/bar');

根据参数中给定的“JSON指针”从Mojo::JSON::Pointer对象的data属性中检索对应的值并返回。如果没有找到则返回undef。

# "just a string"
Mojo::JSON::Pointer->new('just a string')->get('');

# "mojolicious"
Mojo::JSON::Pointer->new({'♥' => 'mojolicious'})->get('/♥');

# "bar"
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5, 6]})->get('/foo');

# "4"
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5, 6]})->get('/baz/0');

# "6"
Mojo::JSON::Pointer->new({foo => 'bar', baz => [4, 5, 6]})->get('/baz/2');

new

my $pointer = Mojo::JSON::Pointer->new;
my $pointer = Mojo::JSON::Pointer->new({foo => 'bar'});

构建一个新的Mojo::JSON::Pointer对象,并根据传的参数设置data属性。

上一篇 下一篇

猜你喜欢

热点阅读