1

不正な形式のJSONの配列を含むこのJavaScript文字列があり、それが表す配列として解析したいと思います。文字列は次のようになります。

variable = [{ var1: 'value11', var12: 'value2', var3: 'value13' }, { var1: 'value21', var2: 'value22', var3: 'value23' }]

これを解析して実際の配列にすることは可能ですか?

4

2 に答える 2

2

それvariable =も文字列の一部として返されると思いますので、間違っている場合は訂正してください。

JavaScriptを使用している場合は、それを評価してから使用できます。残念ながら、これはあなたがその変数名で立ち往生していることを意味します。

http://jsfiddle.net/2xTmh/

于 2012-05-07T16:16:16.533 に答える
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
                )

        )

)
于 2012-05-07T16:29:57.420 に答える