json text split reg выражение или синтаксический анализатор - PullRequest
0 голосов
/ 23 мая 2011
$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')
// );

Есть ли регулярное выражение для разделения этого с использованием preg_split в php?

в основном мне нужно то же самое, что и json_decode (), но без кавычек на ОБА value и key, и единственное, что осталось - четыре символа \{ \, \} \:

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

Хорошо, во-первых, json неверен и выдаст ошибку на json_decode.

, прочитайте спецификации для json здесь

Одна правильная реализацияJSON:

$var ='
   { 
        "key" : { 
            key_deep :  "val\{ue" 
        } , 
        "key2" : "value"
   }
';

Также json_decode никогда не дает Array, он дает object(stdClass), если вы не добавите параметр true

2 голосов
/ 23 мая 2011

Вы, вероятно, захотите посмотреть на анализатор, а не на регулярное выражение, учитывая произвольное вложение, которое может произойти здесь.

Try:

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

...