1

I have string that look like Array that fetched from other webservice like this

[
    [
        [189, 'Brazil Serie A', 0, ''],
        [
            [1053230, 'Flamengo', 'Atletico Goianiense', '1.196', 10, '07/02/2012 04:30', 0, 9, 1, 0, '', 0]
        ],
        [0, [
            [10770901, 0, 5000.00],
            [1, 17988654, '-0.78', '0.70', '1.0', 1],
            [3, 17965783, '0.97', '0.93', '2.5-3'],
            [7, 17965787, '-0.89', '0.77', '0.50', 1],
            [9, 17965789, '0.70', '-0.82', '1.0']
        ]]
    ],
    [, , [0, [
        [10748028, 0, 3000.00],
        [1, 17965781, '0.85', '-0.93', '0.5-1', 1],
        [3, 17988655, '0.79', '-0.89', '2.50']
    ]]]
]

Is it possible to parsing to PHP Array or convert to JSON ?

4

2 に答える 2

2

ctrahey が指摘したように、有効な JSON にするには、一重引用符を二重引用符に置き換える必要があります。前に何もないコンマも削除する必要があります。

// quote to double quote                
$input = str_replace("'", '"', $input);                 

// remove empty commas
$input = preg_replace('/,\s*,/', ',', $input);          
$input = preg_replace('/\[\s*,/', '[', $input);

$output = json_decode($input)); 

シンプルに保ち、少し柔軟性を持たせようとしました。

于 2012-07-06T04:34:11.533 に答える
1

ええと、一見すると... 一重引用符を二重引用符に変換すると、既に JSON が作成されています。私は約半分を切り替えましたが、その時点で問題なく検証されていました。

詳細については仕様を参照してください。ただし、これは基本的に単なる配列の集まりです。文字列の二重引用符の要件はそこに明確に記載されており、残りは問題ないようです。

于 2012-07-06T04:07:32.233 に答える