$var ="
{
key : {
key_deep : val\{ue /* should be "val{ue" as { is escaped */
} ,
key2 : value
}
";
print_r(preg_split('//',$var));
// array(
// array(
// 'key'=> array(
// 'key_deep'=> 'val{ue'
// )
// ),
// array('key2'=>'value')
// );
是否有正则表达式使用php中的preg_split来分割它?
基本上我需要与json_decode()相同,但不需要 BOTH value
和key
上的引号,唯一转义的是四个字符{{ 1}}
答案 0 :(得分:3)
有一点是json不正确并且会在json_decode
上发出错误。
阅读json here
的规格json的一个正确实现是:
$var ='
{
"key" : {
key_deep : "val\{ue"
} ,
"key2" : "value"
}
';
除非您添加json_decode
参数
Array
永远不会产生object(stdClass)
它会产生true
答案 1 :(得分:2)
考虑到可能出现的任意嵌套,你可能会想要查看解析器而不是正则表达式。
尝试:
http://pear.php.net/package/PHP_ParserGenerator/redirected
或
http://www.hwaci.com/sw/lemon/
或
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=php+parser+generator