2016-08-24 4 views
0

У меня возникли проблемы с отправкой на мой взгляд JSON-кодированного массива.JSON encode in Slim framework

Так что я делаю это в моем маршруте

$data['values'] = array('name'=>'John'); 
$data['values'] = json_encode($data['values']); 
return $this->view->render($res, 'githubpresentation.html', $data); 

И на мой взгляд, в тэгом я делаю это

var values = "{{values}}" ; 
console.log(values); 

values = JSON.parse(values); 
console.log(values); 

Первый console.log, перед выходами JSON.parse это:

{"name":"John"} 

И когда я делаю JSON.parse я получаю сообщение об ошибке, конечно

Unexpected token & in JSON at position 1 

Теперь я мог бы сделать какой-то заменить на & Quot, но мне действительно нужно? Разве я не могу отправить JSON с сервера?

+0

Тонкий не связывайте двигатель шаблона по умолчанию, насколько я знаю. Какой из них вы используете? –

+0

Twig. Но ответ от Davide решил мою проблему –

+0

Потому что он понял, что вы использовали Twig :) –

ответ

2

Это связано с по умолчанию escaping strategy. Вы можете исправить это с помощью Js один:

var values = "{{values|e('js')}}" ; 
console.log(values); 

values = JSON.parse(values); 
console.log(values); 

Выход:

{"name":"John"} 
Object {name: "John"} 
+1

У меня новый герой. Это называется Давиде Пасторе :) :) Это работает человек. Thx a million –

+0

Я Бэтмен: P Привет @PauloBorralhoMartins, если этот или любой ответ решил ваш вопрос, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/q/5234/179419), нажав check- отметка. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. Это не обязательно. –