Я пытаюсь повторить некоторые данные JSON. Проблема состоит в том, что данные содержат переменные, но мой код не помещает переменные в строку. Вот мой код:
$status = $row['Status']; $priority = $row['Priority']; echo '{"status":"$status","priority":"$priority"}' ;
этот php эхом
{"status":"$status","priority":"$priority"}
когда мне нужно эхо
{"status":"Completed","priority":"High"}
например. Как я могу это исправить?
Просто используйте функцию json_encode
echo json_encode($row);
json_encode($row)
Вы получите желаемый результат.
Проблема здесь в том, что PHP не заменяет переменные в одинарных кавычках, только в двойных кавычках (см. http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double ) ,
Например:
$test = "a"; echo 'This is $test test and'.chr(10); echo "this is $test test.".chr(10); /* Creates the following output: This is $test test and this is a test. */
Примечание: chr(10)
создает новую строку.
И решение вашей проблемы заключается в использовании json_encode()
и json_decode()
как уже предполагали другие люди. http://php.net/manual/en/function.json-encode.php
Проблема заключается в ваших одиночных кавычках, PHP получает все vars внутри как строки, поэтому разбивайте строку следующим образом:
echo '{"status":"'.$status.'","priority":"'.$priority.'"}' ;
Кроме того, вы можете использовать json_encode()
чтобы не создавать свой JSON-объект вручную.