1

我有看起来像Array从这样的其他网络服务中获取的字符串

[
    [
        [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']
    ]]]
]

是否可以解析PHP Array或转换为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 回答