我有这个包含格式错误的JSON的JavaScript字符串,我想将它解析为它所代表的数组。字符串:
variable = [{ var1: 'value11', var12: 'value2', var3: 'value13' }, { var1: 'value21', var2: 'value22', var3: 'value23' }]
是否可以解析它以使它成为一个实际的数组?
先谢谢。
答案 0 :(得分:2)
我假设variable =
也作为字符串的一部分返回,所以如果我错了,请纠正我。
如果您使用的是JavaScript,则可以对其进行评估,然后再使用它。不幸的是,这确实意味着您仍然坚持使用该变量名称。
答案 1 :(得分:1)
如果您使用的是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
)
)
)