Текст базы данных не может быть преобразован в JSON

#php #mysql #ajax #json #angularjs

#php #mysql #ajax #json #angularjs

Вопрос:

Я получаю текст от MySQL через вызов AJAX с использованием PHP. Когда я пытаюсь JSON.parse(string) , я получаю сообщение об ошибке. Я проверил свой JSON, и оказалось, что MYSQL выдает мне некоторые значения UTF-8, которые JSON не может обработать, как мне это исправить, чтобы я мог проанализировать его на стороне клиента?

Пример JSON: While weu2019re still waiting...

Пример Javascript:

 module.controller('OrdersController', function($scope, $http){

$http.get(base_url()   'orders/?position='   position)      
    .success(function(data){
    console.log(jQuery.parseJSON(data));
});
  

Комментарии:

1. вы пробовали обернуть json utf8_encode перед выводом ответа ajax?

2. @shatheesh Да, сэр, я сделал и все равно ничего.

3. предоставьте больше кода и выходных данных json, чтобы мы могли вам больше помочь

4. @shatheesh Остальная часть вывода JSON действительна в соответствии с валидатором, что вызывает проблему, так это та часть, которую я вам показал, все остальное слишком длинное и неуместное. Я добавил немного Javascript, используя AngularJS при редактировании.

5. Получите ваши данные такими, какие они есть, из .success(function(data){ console.log(data) }) него уже идет как объект, если вы не изменили $httpProvider.defaults

Ответ №1:

$http посмотрите Content-Type в заголовках и проанализируйте строку для объекта для вас, если это необходимо

Таким образом, вы можете использовать свой data аргумент как есть:

 $http.get(base_url()   'orders/?position='   position).success(function(data){
    console.log(data);
});
  

Некоторая полезная информация о $ http (посмотрите на настройку HTTP-заголовков)