繁体   English   中英

使用json_encode为javascript var重新格式化json

[英]reformatting json using json_encode for a javascript var

快速问题我真的需要一些帮助,我重新格式化一些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;

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";

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM