2016-07-04 1 views
3

ImいくつかのJSONデータをエコーし​​ようとしています。問題は、データに変数が含まれていますが、私のコードは変数を文字列に入れていません。 HERESに私のコード:私は例えばPHPでJSONデータをエコーする

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

をエコーする必要がある場合

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

このPHPが

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

をエコーされます。これをどうすれば解決できますか?

+3

jsonを手動でビルドすることはできません。代わりに 'json_encode()'を使用してください。 – jeroen

答えて

6

だけ

echo json_encode($row); 
0

問題は、PHPは文字列として内部のすべてのVARSを取得するので、次のように文字列を破る、あなたの単一引用符で囲まれている。その上で

echo '{"status":"'.$status.'","priority":"'.$priority.'"}' ; 

、あなたはJSONを構築していないために、json_encode()を使用することができますオブジェクトを手動で作成します。

5
json_encode($row) 

json_encode機能を使用するには、あなたに必要な出力が得られます。

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