json文本拆分reg表达式或解析器

时间:2011-05-23 16:09:19

标签: php json parser-generator

$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 valuekey上的引号,唯一转义的是四个字符{{ 1}}

2 个答案:

答案 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