0
$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 value ()と同じものが必要ですが、両方の引用符は必要ありkeyません。エスケープされるのは4文字だけです。\{ \, \} \:

4

2 に答える 2

3

1 つには、json が正しくなく、エラーが発生しjson_decodeます。

ここでjsonの仕様を読んでください

json の 1 つの正しい実装は次のとおりです。

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

また、パラメータを追加しない限りjson_decode、決して生成Arrayされませんobject(stdClass)true

于 2011-05-23T16:11:39.043 に答える
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

于 2011-05-23T16:42:11.377 に答える