2012-05-07 26 views
1

不正な形式のJSONが含まれているこのJavaScript文字列があり、その配列として解析したいと思います。文字列が行く:配列として配列のような文字列を解析します。

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

、それが実際の配列となるように、これを解析することは可能ですか?

ありがとうございました。

+1

あなたはどのようなプログラミング言語を使用していますか? – Asaph

+1

これに対する解決方法は、使用する予定の言語に非常に依存しています。説明するために質問を編集してください。 – pjmorse

+0

申し訳ありませんが、忘れてしまいました。これはちょうど場合に応じてOPに追加されました。 –

答えて

2

私はvariable =も文字列の一部として返されると仮定していますので、私が間違っている場合は修正してください。

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

http://jsfiddle.net/2xTmh/

+0

ありがとうございます!私はその変数の名前に固執しても構いません。問題ではありません。あなたは命の恩人です。 –

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 
       ) 

     ) 

) 
+0

ありがとうございます、はい、PHPは簡単になります...残念ながら、それはオプションではありません。 –

関連する問題