Как декодировать этот массив объекта в массив Php, я использовал json_decode(), но вернул Null
$a = "[
{
id:1,
name:'rajan',
class:10
},{
id:2,
name:'amrit',
class:12
},{
id:3,
name:'arun',
class:11
}
]";
Ваш JSON недействителен, поэтому json_decode возвращает null.
SyntaxError: Unexpected token i
http://php.net/manual/en/function.json-decode.php
Возвращает значение, закодированное в json в соответствующем PHP-типе. Значения true, false и null возвращаются как TRUE, FALSE и NULL соответственно. NULL возвращается, если json не может быть декодирован или если кодированные данные глубже, чем предел рекурсии.
Я также исправил ваш JSON:
[
{
"id": 1,
"name":"rajan",
"class":10
},{
"id":2,
"name":"amrit",
"class":12
},{
"id":3,
"name":"arun",
"class":11
}
]
Фиксация вашего сломанного JSON кодом:
$replace_keys = preg_replace("/(\w*):/i", '"$1":', $a);
$fix_values = preg_replace("/:'(\w*)'/i", ':"$1"', $replace_keys);
Затем вы можете использовать $replace_keys
в json_decode
. Я не уверен, что это лучший метод, так как небольшие вариации в json могут сломать его, но он исправляет его с помощью приведенного примера.
Полный код для исправления JSON:
$a = "[
{
id:1,
name:'rajan',
class:10
},{
id:2,
name:'amrit',
class:12
},{
id:3,
name:'arun',
class:11
}
]";
$replace_keys = preg_replace("/(\w*):/i", '"$1":', $a);
$fix_values = preg_replace("/:'(\w*)'/i", ':"$1"', $replace_keys);
die($fix_values);
id
,name
иclass
говорит о том, что это недопустимо json