0

次の文字列があります。

$json = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   table  :  "cde "  ,  values   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
    ';

以下の正規表現ですでに試しましたが、結果は期待されていませんでした。

$json = preg_replace('~\s{1,}~', '', $json);

そして、私は以下のリターンを持っているのが好きです

 {"insert": [{"table": "abc", "values": {"id": 1, "text": "lorem ipsum"}}, {"table": "cde", "values": {"id": 2, "text": "lorem ipsum dolor sit"}}]}

次にjson_decode()を使用するには

私がはっきりしていることを願っています

アップデート:

次の文字列があります。

例:

$json_string = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   "  table  "  :  "cde "  ,  "  values"   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
    ';

次の出力が欲しい

$json_replaced = '{"insert": [{"table": "abc", "values": {"id": 1, "text": "lorem ipsum"}}, {"table": "cde", "values": {"id": 2, "text": "lorem ipsum dolor sit"}}]}';
4

2 に答える 2

0

以下はあなたのために働くはずです:

$json = '
    insert: [
        { table:" abc",values:{id:1,text:" lorem ipsum "} },
        {   table  :  "cde "  ,  values   :   { id  : 2  , firstname  :  "lorem ipsum   dolor sit    " } } 
    ]
';
$json = '{' . $json . '}';
$json = preg_replace(array('/ *\n */', '/(?<=[{,]) *([^\s:]+) *: */'),
                     array("", '"$1": '), $json);
echo $json; // converted json string
print_r(json_decode($json, true)); // decoded array

ライブデモ: http://ideone.com/wfxDYK

出力:

{"insert": [{"table": " abc","values": {"id": 1,"text": " lorem ipsum "} },{"table": "cde "  ,"values": {"id": 2  ,"firstname": "lorem ipsum   dolor sit    " } }]}

Array
(
    [insert] => Array
        (
            [0] => Array
                (
                    [table] =>  abc
                    [values] => Array
                        (
                            [id] => 1
                            [text] =>  lorem ipsum 
                        )

                )

            [1] => Array
                (
                    [table] => cde 
                    [values] => Array
                        (
                            [id] => 2
                            [firstname] => lorem ipsum   dolor sit    
                        )

                )

        )

)
于 2013-10-02T21:34:29.487 に答える