我的文件内容与此类似:
CefV8Value::GetIntValue();
例如,上面的文件有3个带有元素的对象:颜色和块。
我正在寻找一种简单的方法,用PHP只输出文件的一个对象。 (删除外部[{"color":1,"blocks":[[{"id":64}]]},{"color":1,"blocks":[[{"id":64},{"id":64}],[{"id":1}]]},{"color":2,"blocks":[[{"id":64},{"id":64}],[{"id":1}]]}]
- 括号并将第一级[]
- 括号拆分为数组的不同元素或不同的字符串或其他内容)
结果应该是object1
{}
或对象2
{"color":1,"blocks":[[{"id":64}]]}
如何说PHP获取字符串并将其拆分为每个{"color":1,"blocks":[[{"id":64},{"id":64}],[{"id":1}]]}
它可以找到部分或使用第一级{"color"
- 括号?
目前我正在使用{}
,我的代码就像
$config=json_decode($file,true);
...但那太疯狂了,对象有太多元素
我需要一种echo '{"color":'.$config[2]["color"].'"blocks"
输出echo $config[2]
我尝试将该文件作为字符串读取并使用explode但{"color":2,"blocks":[[{"id":64},{"id":64}],[{"id":1}]]}
或"},"
作为分隔符不起作用,我找不到有效的分隔符。
答案 0 :(得分:3)
你错了。你不输出json,你提取子数组/对象,然后重新编码。 e.g。
$foo = json_decode($your_json);
$temp = $foo['bar'][1]['baz']; // deep sub-data
echo json_encode($temp);
不需要子字符串操作/修改。只需解码,提取,重新编码提取的部分。
答案 1 :(得分:0)
解码然后编码:
$str = '[{"color":1,"blocks":[[{"id":64}]]},{"color":1,"blocks":[[{"id":64},{"id":64}],[{"id":1}]]},{"color":2,"blocks":[[{"id":64},{"id":64}],[{"id":1}]]}]';
$config = json_decode($str, true);
$json = json_encode($config[2]);
print $json;
这将打印您想要的内容。