我有这个 JavaScript 字符串,其中包含格式错误的 JSON 数组,我想将其解析为它所代表的数组。字符串是:
variable = [{ var1: 'value11', var12: 'value2', var3: 'value13' }, { var1: 'value21', var2: 'value22', var3: 'value23' }]
是否可以解析它以使其成为实际的数组?
我有这个 JavaScript 字符串,其中包含格式错误的 JSON 数组,我想将其解析为它所代表的数组。字符串是:
variable = [{ var1: 'value11', var12: 'value2', var3: 'value13' }, { var1: 'value21', var2: 'value22', var3: 'value23' }]
是否可以解析它以使其成为实际的数组?
我假设它variable =
也作为字符串的一部分返回,所以如果我错了,请纠正我。
如果您使用的是 JavaScript,则可以对其进行评估,然后使用它。不幸的是,这确实意味着您仍然坚持使用该变量名。
如果您使用的是 php,则可以使用正则表达式“修复”json 字符串。这有效:
<?php
$json = "variable = [{ var1: 'value11', var12: 'value2', var3: 'value13' }, { var1: 'value21', var2: 'value22', var3: 'value23' }]";
// replace 'variable =' with '"variable" :' and surround with curly braces
$json = preg_replace('/^(\S+)\s*=\s*([\s\S]*)$/', '{ "\1" : \2 }', $json);
// quote keys and change to double quotes
$json = preg_replace("/(\S+): '(\S+)'/", '"\1": "\2"', $json);
echo $json . "\n";
$data = json_decode($json, true);
print_r($data);
?>
这输出:
{ "variable" : [{ "var1": "value11", "var12": "value2", "var3": "value13" }, { "var1": "value21", "var2": "value22", "var3": "value23" }] }
Array
(
[variable] => Array
(
[0] => Array
(
[var1] => value11
[var12] => value2
[var3] => value13
)
[1] => Array
(
[var1] => value21
[var2] => value22
[var3] => value23
)
)
)