2016-04-28 56 views
0

我需要在我的JSON字符串摆脱双引号去掉双引号的,这就是我正在形成一个数组,然后将其转换成JSON入门的JSON

$dinnerDetails = array(); 
foreach ($dinners as $dinner) { 
    $dinnerDetails[] = array(
     "title" => $dinner->getName(), 
     "data" => $dinner->getDate() 
    ); 
} 

$dinnerDetails = json_encode($dinnerDetails); 

里面我认为当我倾倒$dinnerDetails我看到下面的

string '[ 
    { 
     "title": "Formal Dinner", 
     "data": "Tue Apr 05 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Formal Dinner", 
     "data": "Tue Apr 05 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Black Tie", 
     "data": "Wed Apr 13 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Formal Dinner", 
     "data": "Fri Apr 08 2016 05:00:00 GMT+0500 (PKT)" 
    } 
] 

,当我给你这一个JS变量,这是如何在源看到它

var dinners = [ 
    { 
     "title": "Formal Dinner", 
     "data": "Tue Apr 05 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Formal Dinner", 
     "data": "Tue Apr 05 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Black Tie", 
     "data": "Wed Apr 13 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Formal Dinner", 
     "data": "Fri Apr 08 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Formal Dinner", 
     "data": "Sat Apr 16 2016 05:00:00 GMT+0500 (PKT)" 
    }, 
    { 
     "title": "Formal Dinner", 
     "data": "Mon Mar 28 2016 05:00:00 GMT+0500 (PKT)" 
    } 
]; 

我使用Symfony框架,这是我怎么想过去$dinnerDetails查看

return $this->render('AppBundle:admin/college:edit.html.twig', array(
    'dinners' => $dinnerDetails 
)); 

,然后里面小枝我喜欢这个

var dinner = jQuery.parseJSON(dinners);

在JS我甚至试过分配给JS变量做JSON.parse(dinners.replace(""",'"'));但这没有帮助。

,我寻找的输出是这样的

[ 
        { 
         title: "All Day Event", 
         date: "Fri Apr 08 2016 05:00:00 GMT+0500", 
        }, 
        { 
         title: "Long Event", 
         date: "Fri Apr 08 2016 05:00:00 GMT+0500", 
        }, 
] 

我真的在这里欣赏帮助。

+2

如何将'$ dinnerDetails' php变量赋值给JavaScript变量?请提供代码 –

+0

你的意思是这样的https://jsfiddle.net/7obbbn4n/ – AshBringer

+0

看来Symfony框架会自动处理你传递的所有内容,就好像它应该是html编码一样。这不是我熟悉的,但是你应该看看是否有另一种'render'方法,你可以告诉它'dinners'或'$ dinnerDetails'应该是JS编码的,或者可能是未编码的,而不是。 –

回答

0

尝试raw-filter在您的模板中。类似这样的:

{{ dinners|raw }} 

2nd。你已经将一个PHP对象序列化为一个JSON字符串。
如果你将这个字符串粘贴到一个脚本块中,这个字符串将会被解释为为
现在是JS代码,不再是字符串了。你不必解析它;实际上你不能解析它。

<script> var dinner = {{ dinners|raw }}; </script> 
+0

谢谢soooo我应该想到这:) – Saadia

0

在你的控制器或php文件中使用下面的代码。

<?php 
$arrDinnerDetails = array(); 
foreach ($dinners as $dinner) 
{ 
    $arrDinnerDetails[] = array(
     "title" => $dinner->getName(), 
     "data" => $dinner->getDate() 
    ); 
} 
return $this->render('AppBundle:admin/college:edit.html.twig', array(
      'arrDinnerDetails' => $arrDinnerDetails 
     )); 
?> 

在您的视图文件中,使用下面的代码。

<script> 
    var strJsonDinner = JSON.stringify('<?php echo json_encode($arrDinnerDetails); ?>'); 
</script>