2015-07-31 3 views
2

Я получаю некоторые данные от mysql и отправляю их для разрыва с помощью json. Но отправка данных в виде массива добавляет обратную косую черту к моим результатам.json_encode добавляет обратную косую черту

PHP:

$result = mysql_query("SELECT location_name, phone_number FROM location WHERE email_id = '[email protected]'"); 

$result_array = array(); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $result_array[] = $row; 
} 
echo json_encode($result_array); 

JS:

$$.ajax({ 
      url: 'http://www.abc.co/SupportData/get_business_locations.php', 
      type: "POST", 
      data: { 
       email: window.localStorage["email"]    
      }, 
      dataType: "JSON", 
      success: function (jsonStr) { 
       console.log(JSON.stringify(jsonStr)); 
      } 
     }); 

Выход:

[{\"location_name\":\"Bandra\",\"phone_number\":\"\"},{\"location_name\":\"Dadar\",\"phone_number\":\"\"},{\"location_name\":\"ee\",\"phone_number\":\"\"},{\"location_name\":\"ttttt\",\"phone_number\":\"\"}]""

+1

Используйте 'json_encode ($ result_array, JSON_UNESCAPED_SLASHES);' для удаления обратных косых черт – Saty

+0

Я просто удалил JSON.stringify из JS, и он отлично работал. Все еще не знаете почему? –

+0

JSON.stringify превращает объект в текст JSON и сохраняет этот текст JSON в строке. Optional. Добавляет отступы, пробелы и символы разрыва строки в текст JSON возвращаемого значения, чтобы упростить его чтение. – Saty

ответ

1

Чтобы удалить обратные косые черты из JSON использовать JSON_UNESCAPED_SLASHES

json_encode($result_array, JSON_UNESCAPED_SLASHES); 
+0

Я уже пробовал этот вариант, это не помогает. –

+0

попробуйте с помощью 'stripslashes (json_encode ($ result_array))' – Saty

+0

Еще один результат. Я думаю, что у него есть что-то для '

0

Вы можете заменить обратную косую черту, используя следующий код.

str_replace("\ " , '' ,"jsonoutput"); 
0

Что происходит, так это то, что ваш вызов AJAX уже возвращает JSON. Итак, если вы используете JSON.stringify, вы, скорее всего, кодируете JSON несколько раз. См. Why is json_encode adding backslashes?, это может помочь.

0
stripslashes(json_encode($result_array)) 

работал для меня!

Смежные вопросы