JsonBuilder
概述
JSON 构建器允许你通过 Symfony PropertyAccess 组件构建你的 JSON,同时保持对值转义的控制。
创建构建器
要构建 JSON,你需要实例化一个构建器。
1 2 3
use FOS\CKEditorBundle\Builder\JsonBuilder;
$builder = new JsonBuilder();
设置你的值
要在构建器上设置你的值,你可以使用 setValues
或 setValue
,但请注意它们的行为不同。基本上,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 构建,你需要重置它。
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 许可协议获得许可。