У меня есть следующая строка JSON, я пытаюсь декодировать с помощью php json_decode, но $ postarray всегда имеет значение NULL, не может понять, почему это так?
Запуск на версию Debian 5.0 для Linux php Client версии => 5.0.51a Json версия 1.2.1
$json = '{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}'; $postarray = json_decode($json); print_r($postarray);
благодаря
Причиной избежать двойных кавычек ( \"
) в строке является то, что строка содержит двойные кавычки.
Поскольку вы избегаете двойных кавычек, вы должны удвоить (не одиночные) цитаты вашей строки, например:
<?php $json = "{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}"; $postarray = json_decode($json); print_r($postarray); ?>
Живой пример
Если вам нужна одиночная цитата вашей строки, то не избегайте двойных кавычек или используйте stripslashes (), как предложил Андрей.
Вы можете прочитать о четырех способах указать строку в PHP и различия между ними .
Попробуй это:
<?php $json = stripslashes('{\"json\":[{\"username\":\"1062576\",\"accountId\":\"45656565\"}]}'); $postarray = json_decode($json); print_r($postarray);
Вы должны заключить его в двойные кавычки.
Строка не будет анализироваться, потому что она заключена в одинарные кавычки, поэтому обратные косые черты являются буквальными. Если вы удалите их, используйте stripslashes или приложите строку в двойные кавычки, у вас не должно быть проблем.