2012-05-07 3 views
1

У меня есть эта строка JavaScript, которая содержит и массив некорректного JSON, и я хотел бы проанализировать его как массив, который он представляет. Строка идет:Parse Array-like string as Array

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

Можно ли разобрать это так, что он становится фактическим массив?

Спасибо в продвижении.

+1

Какой язык программирования вы используете? – Asaph

+1

Решение этого будет чрезвычайно зависеть от того, какой язык вы планируете использовать. Измените свой вопрос, чтобы объяснить это. – pjmorse

+0

Извините, забыли упомянуть об этом. Он был добавлен в ОП на всякий случай. –

ответ

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 упростит ... к сожалению, это не вариант. –