在php中回应JSON数据

时间:2016-07-04 11:11:32

标签: php json

我试图回应一些JSON数据。问题是数据包含变量但我的代码没有将变量放入字符串中。 继承我的代码:

$status = $row['Status'];
$priority = $row['Priority'];
echo '{"status":"$status","priority":"$priority"}' ; 

这个php正在回应

{"status":"$status","priority":"$priority"}

当我需要回应

{"status":"Completed","priority":"High"}
例如,

。我该如何解决这个问题?

4 个答案:

答案 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对象。