2016-05-20 3 views
1

Предположим, у меня естьКак преобразовать строку JSON массива в массив объектов в PHP

$obj = "[{'A':'a1','B':2,'C':'c1'},{'A':'a2','B':2,'C':'c2'}]" 

И я хочу, чтобы преобразовать его в массив объекта.

obj[0](
A => 'a1' 
B => 2 
C => 'c1' 
) 

Как это сделать?

+0

Пробовали ли вы что-то вроде '$ О.Б. = json_decode ($ OBJ);'? – blazerunner44

+0

Это недействительно json, поэтому вам, вероятно, придется вручную его разобрать. – jeroen

+2

Ваши котировки обмениваются. Если это: '$ obj = '[{" A ":" a1 "," B ": 2," C ":" c1 "}, {" A ":" a2 "," B ": 2," C ":" c2 "}] ';' вы можете очень хорошо конвертировать в объект. в противном случае вам нужно проанализировать его. – Thamilan

ответ

0

Используйте str_replace(), чтобы изменить одинарные кавычки в двойную кавычку для правильной строки json.

Затем используйте json_decode(), чтобы преобразовать его в массив.

$obj = "[{'A':'a1','B':2,'C':'c1'},{'A':'a2','B':2,'C':'c2'}]"; 
$newobj = str_replace("'", '"', $obj); 
$arr = json_decode($newobj); 
print_r($arr); 

Выход

Array 
(
    [0] => stdClass Object 
     (
      [A] => a1 
      [B] => 2 
      [C] => c1 
     ) 

    [1] => stdClass Object 
     (
      [A] => a2 
      [B] => 2 
      [C] => c2 
     ) 

) 

Проверить Демо: Click Here

+0

Используйте вышеприведенный код для преобразования строки в json и из строки json в массив. @ThSorn – RJParikh

+0

OP нуждается в объекте, а не в массиве. Удалите это 'true' из' json_decode' – Thamilan

+0

ok ... спасибо за сообщение. @Thamilan – RJParikh

Смежные вопросы