Проблема с jquery json parse

191
19 мая 2018, 18:00

При попытке вывести полученный json jquery валится с ошибкой -

jquery.min.js:2
Uncaught TypeError: Cannot use 'in' operator to search for '2520' in.

Вот json:

[
{
   name: "ААА АААААА",
   lat: "43.1662323931",
   lng: "131.923339512",
   status: null
},
{
   name: "ВЫАЫВА ААААА АААА",
   lat: "43.09832378",
   lng: "131.92623462",
   status: null
},
{
   name: "ЗЗЗЗЗЗ ЗЗЗЗ ХЗЗЗ",
   lat: "43.16569999995",
   lng: "131.94030216",
   status: null
}
]

Вот как пытаюсь вывести значения:

$.ajax({
        url:'some.php',
        success:function(data){
            var dataPlacemark=JSON.parse(data);
            $.each(data,function(i,item){
                console.log('Статья: id = '+data.name );
            })
        }
    });
Answer 1

В примере указан не JSON а массив объектов. Если предположить что это уже полученные данные

let data =  [{
     name: "ААА АААААА",
     lat: "43.1662323931",
     lng: "131.923339512",
     status: null
   },
   {
     name: "ВЫАЫВА ААААА АААА",
     lat: "43.09832378",
     lng: "131.92623462",
     status: null
   },
   {
     name: "ЗЗЗЗЗЗ ЗЗЗЗ ХЗЗЗ",
     lat: "43.16569999995",
     lng: "131.94030216",
     status: null
   }];

Тогда для вывода в цикле используем конструкцию:

  $.each(data, function(i,item){
     console.log('Статья: id = '+item.name )
  })
Answer 2

Не надо парсить JSON, если это конечно он.

$.ajax({ 
  url: 'https://jsonplaceholder.typicode.com/users', 
  success: function(data) { 
    //var dataPlacemark=JSON.parse(data); // No need to JSON.parse 
    $.each(data, function(i, item) { 
      console.log('Статья: id = ' + data[i].name); 
    }) 
  } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Answer 3

Решил следующим способом:

$.ajax({
        url:'some.php',
        success:function(data){
             var sample= JSON.parse(data);
                $.each(sample,function(){
                console.log('Имя  = '+ this.name );
                console.log('lat = '+ this.lat );
                console.log('lang = '+ this.lng );}
});
READ ALSO
Сократить код Jquery

Сократить код Jquery

Можно ли как то сократить данный код ? Не очень силён в jquery Спасибо

202
Поправить HTML5 плеер

Поправить HTML5 плеер

Есть некий плеер Codepen Я поставил на страницу 5 таких плееров с разной музыкойПомогите сделать что бы если 1 музыку слушаешь включаешь вторую...

235
Не работает Jquery код при верстке

Не работает Jquery код при верстке

При вёрстке сайта перестала работать JQuery библиотека при написании собственного кодаКарусели Bootstrap работают нормально, а вот, допустим, такой...

235
Чтение файла из treeView в Richtextbox?

Чтение файла из treeView в Richtextbox?

Делаю программу, в которой treeView выводит список файлов согласно условиюФайлы формата

262