跳到内容

JsonBuilder

编辑此页

概述

JSON 构建器允许你通过 Symfony PropertyAccess 组件构建你的 JSON,同时保持对值转义的控制。

创建构建器

要构建 JSON,你需要实例化一个构建器。

1
2
3
use FOS\CKEditorBundle\Builder\JsonBuilder;

$builder = new JsonBuilder();

设置你的值

要在构建器上设置你的值,你可以使用 setValuessetValue,但请注意它们的行为不同。基本上,setValues 允许你在构建器中追加一组值而无需转义控制,而 setValue 允许你在构建器中追加一个值但带有转义控制。

追加一组值

要在构建器中追加一组值,只需使用 setValues 并将你的值作为第一个参数传递。

1
$builder->setValues(['foo' => ['bar']]);

此外,此方法将路径前缀 (PropertyAccess 组件) 作为第二个参数,它允许你在构建器图中你想要的位置追加你的值。因此,下一个示例基本上与前一个示例等效。

1
$builder->setValues(['bar'], '[foo]');

追加一个值

要在构建器中追加一个值,只需使用 setValue 并将路径作为第一个参数,值作为第二个参数传递。

1
$builder->setValue('[foo][0]','bar');

如果你想保持对值转义的控制,这部分适合你。基本上,只需将 false 作为第三个参数传递。

1
$builder->setValue('[foo][0]','bar', false);

配置 JSON 编码选项

默认情况下,JSON 构建器使用原生的 json_encode 选项。要覆盖它,你可以使用

1
2
$builder->setJsonEncodeOptions(JSON_FORCE_OBJECT);
$jsonEncodeOptions = $builder->getJsonEncodeOptions();

这些选项的值可以在 PHP json_decode() 文档中找到。

构建你的 JSON

一旦你的构建器配置正确,你就可以构建你的 JSON。

1
$json = $builder->build();

重置构建器

因为构建器是有状态的(跟踪每个值),如果你想重新开始 JSON 构建,你需要重置它。

1
$builder->reset();

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use FOS\CKEditorBundle\Builder\JsonBuilder;

$builder = new JsonBuilder();

// {"0":"foo","1":bar}
echo $builder
    ->setJsonEncodeOptions(JSON_FORCE_OBJECT)
    ->setValues(['foo'])
    ->setValue('[1]', 'bar', false)
    ->build();

// {"foo":["bar"],"baz":bat}
echo $builder
    ->reset()
    ->setValues(['foo' => ['bar']])
    ->setValue('[baz]', 'bat', false)
    ->build();
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本