2016-09-30 3 views
1

В настоящее время я возвращающееся сообщение от моего PHP бэкэнда как так:Возвращение JSON с помощью PHP

$data = [ 'message' => 'Number doesn\'t exist!']; 
$this->set_response(json_encode($data), REST_Controller::HTTP_CREATED); 

Это создаст сообщение вида:

"{\"message\":\"Number doesn't exist!\"}" 

Я же надеюсь получить сообщение выглядит так:

{ 
    "message": "Number doesn't exist!" 
} 

Что я делаю неправильно?

+0

расшифровывает данные JSON –

+1

'$ данных = [! 'Сообщение' => 'Количество Безразлично т \' существует ']; echo json_encode ($ data); 'ожидаемый результат возврата. проверьте свою функцию 'set_response' – devpro

+0

Да проблема в set_response @devpro – HaRsH

ответ

3

Вы можете использовать JSON_UNESCAPED_SLASHES в качестве второго параметра в json_encode().

$data = [ 'message' => 'Number doesn\'t exist!']; 
$encoded = json_encode($data,JSON_UNESCAPED_SLASHES); 
$this->set_response($encoded, REST_Controller::HTTP_CREATED); 

Другое решение:

$data = [ 'message' => 'Number doesn\'t exist!']; 
$string = $this->set_response(json_encode($data), REST_Controller::HTTP_CREATED); // your current result 
$decode = json_decode($string,true); // decode the value 
echo json_encode($decode,JSON_UNESCAPED_SLASHES); //and use JSON_UNESCAPED_SLASHES in json_encode() 
0

Брату вам просто нужно позвонить в json как json_encode ($ data, true) и декодировать его как json_decode ($ data, true); Счастливый кодирования если выше, кажется, не работает второй попытки

В \ чтобы избежать кавычки ("), которые являются частью ответа.

Используйте stripslashes(), чтобы лишить их вне.

Когда строка завернутая в кавычках, содержит кавычки, они должны быть экранированы. символ побега в РНР \

+0

ожидаемый результат, необходимый в json. не в массиве – devpro

+0

json_encode() имеет только один параметр. decode имеет 2 параметра –

+0

Я обновил ответ –

0

Вы должны декодировать ответ JSON.

json_decode($your_response); 
Смежные вопросы