0

簡単な質問ですが、本当に助けが必要です。いくつかの json を再フォーマットして、javascript var にします。json_encode で動作するようになりましたが、" シンボルの代わりに ' シンボルを出力する必要があります。それを行う方法はありますか?

このようにする必要があります (' 記号を使用)

{
title:'Greeting',
mp3:'http://www.godsgypsychristianchurch.net/music/Atlanta%20GA/Dey%20duma%20amensa/01%20Greeting.mp3',
buy:'http://www.godsgypsychristianchurch.net/music/Atlanta%20GA/Dey%20duma%20amensa/01%20Greeting.mp3',
price:'Download',
duration:'',
cover:'http://godsgypsychristianchurch.net/music_artwork/DEFAULT_COVER.png'},

私のコード:

foreach ($json['rows'] as $row) {
    if ($_GET['churchname'] == $row[doc]['album']) {
        $songCount = 0;
        foreach ($row['doc']['tracks'] as $song) {
            ++$songCount;
            $arr = array(
                "title" => "{$song['name']}",
                "mp3" => "{$songUrl}",
                "buy" => "{$songUrl}",
                "price" => "Download",
                "duration" => "",
                "cover" => "{$row['doc']['artwork']}",
                );
            echo json_encode($arr);
        }
    }
}
exit;
4

1 に答える 1

2

' '1) valid-JSON の仕様では が必要なため、を使用することはできません" "。そのため、文字列を JSON から JS/PHP/etc のオブジェクトに解析することを期待しているプログラムは、エラーになります。

2) なぜ?JS は、どちらを使用するかは気にしません。サーバー側で何かをしている場合は、多次元 (潜在的に連想) 配列のままにしておきます。

3) 実際の文字列の中に含めることが目的の場合は、次のように" "でエスケープします。\

$myString = "This is my \"double-quoted\" string";

$myString === 'This is my "double-quoted" string';
$myString === "This is my " . '"double-quoted"' . "string";

文字列を連結していて、それらの文字列の 1 つに既に文字列自体に二重引用符が含まれている場合、言語は自動的にそれらがエスケープされるようにします。

喜んでお手伝いさせていただきますが、「なぜですか?」部。

于 2012-11-13T20:13:57.900 に答える