我试图回应一些JSON数据。问题是数据包含变量但我的代码没有将变量放入字符串中。 继承我的代码:
$status = $row['Status'];
$priority = $row['Priority'];
echo '{"status":"$status","priority":"$priority"}' ;
这个php正在回应
{"status":"$status","priority":"$priority"}
当我需要回应
时{"status":"Completed","priority":"High"}
例如,。我该如何解决这个问题?
答案 0 :(得分:6)
只需使用json_encode功能
即可echo json_encode($row);
答案 1 :(得分:5)
json_encode($row)
将为您提供所需的输出。
答案 2 :(得分:3)
这里的问题是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
答案 3 :(得分:0)
问题出在您的单引号中,PHP将所有变量作为字符串包含在内,因此请按以下方式中断字符串:
echo '{"status":"'.$status.'","priority":"'.$priority.'"}' ;
最重要的是,您可以使用json_encode()
以便不手动构建JSON对象。