2012-11-13 32 views
0

快速问题我真的需要一些帮助,我重新格式化一些JSON使它成为一个JavaScript VAR,我得到它与json_encode工作,但我需要它输出符号,而不是“符号,是有办法做到这一点重新格式化JSON使用json_encode为JavaScript var

我需要它是这样的(使用'符号)

{ 
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; 
+0

难道你不能仅仅搜索'json_encode()'的结果来得到双引号,并用单引号替换它们吗? – FixMaker

回答

2

1)你不能让它使用' ',因为有效-JSON的规范要求" ",所以任何期望将你的字符串从JSON解析到JS/PHP /等对象的程序都会出错

2)为什么? JS不关心你使用哪一种,不管怎样,如果你在服务器端做一些事情,把它作为一个多维(可能是关联的)数组。

3)如果它是包括" "您的实际字符串的内部的目的,然后用\逃避他们,就像这样:

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

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

如果您在连接字符串在一起,这些字符串的一个已包含字符串内的双引号,那么你的语言将自动确保它们被转义。

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

+0

感谢您的帮助,我不知道当我回家时我会给它一个镜头,但只是给你更多的信息,这是我想要完成的,但是这个版本是硬编码(静态)我试图从我的JSON http://ggcc.tv/NewSite/cities/atlanta/AllThingsArePossible.html中提取数据,您可以查看页面源代码并检查出来,对不起,我可以将代码粘贴到评论中,而不是从我的iPhone提到 - 感谢您的帮助! – Michael

+0

好吧,首先一个非常快速的语义:你的'myPlaylist'变量不是JSON - 它是一个JS数组,它包含JS对象。通常情况下,这听起来相当迂腐,我明白了... ...但这就是为什么它很重要:1)JS接受''''和''',而JSON只接受'''2)JSON是一个'string' :''[\“one \”,\“two \”]“'不是一个对象或数组或其他任何东西 - 它只是一个看起来像一个字符串。这里真的很简单的解决方案,就像你已经写出myPlaylist一样,就是做'var json_playlist = JSON.stringify(myPlaylist);'然后复制字符串。 – Norguard

+0

'myPlaylist'是完全有效的JS,因此将其转换为JSON字符串非常简单。然后你只需要复制那个字符串,这将成为你的JSON,然后你可以将JSON.parse(json);'回到JS中的一个对象中,或者'json_decode($ json,true);'将它变成一个关联PHP中的数组,或者将要使用的任何语言。 – Norguard