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)你不能让它使用' ',因为有效 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";

如果您将字符串连接在一起,并且其中一个字符串本身已经包含双引号,那么您的语言将自动确保它们被转义。

我很乐意提供进一步帮助,但我需要知道“为什么?” 部分。

于 2012-11-13T20:13:57.900 回答