2015-05-26 3 views
0

Я кодирую jQueryajax функция, которая извлекает список, и мне нужно итерации через этот list.Как пропустить следующий список json?

Это код, я использую для сериализации списка:

JavaScriptSerializer().Serialize(listData); 

Вот данные JSON после того, как данные были получены:

jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]" 

Как перебирать этот список JSon так что я могу получить отдельные значения?

Я попытался следующие:

success: function (mapMarkerData) { 
    for (var MapMarker in mapMarkerData) { 
     alert(MapMarker["latitude"]); 
     alert(MapMarker["longitude"]); 
     alert(MapMarker["title"]); 
     alert(MapMarker["draggable"]); 
    } 
} 

Для каждого предупреждения, я получаю следующее сообщение:

неопределенные

Заранее спасибо

+1

Вы разобрали строку в объект? – Scimonster

+0

Вам нужно разобрать строку на объект, а также массив. Поэтому вам нужно сделать цикл for, а затем оповестить – Rakesh

ответ

0
success: function (mapMarkerData) { 
    for (i in mapMarkerData) { 
     alert(mapMarkerData[i].latitude); 
     alert(mapMarkerData[i].longitude); 
     alert(mapMarkerData[i].title); 
     alert(mapMarkerData[i].draggable); 
    } 
} 
+0

Спасибо. Работает именно так, как мне нужно. – user3736648

0

Вот возможное решение.

var jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]"; 
 

 
var obj = JSON.parse(jsonData); 
 

 
$.each(obj, function(i, row){ 
 
    alert(row.draggable); 
 
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/json2/20140204/json2.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1
var jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]" 


jsonData = JSON.parse(jsonData) //Parse it to make object 

jsonData.forEach(function(val){ 
    alert(val.draggable); 
    . 
    . 
    . 
    alert(val.title); 
}) 
0
var x = $.parseJSON(jsonData); 
for(var o in x){ 
    console.log(x[o].latitude); 
    console.log(x[o].longitude); 
} 
0

решение было бы как

var data = Json.Parse(jsonData); for (int i=0; i< data.length; i++){ alert(data[i]["latitude"]); } 
0

вы можете использовать этот код:

var jsonData = "[{\"draggable\":false,\"icon\":null,\"latitude\":-41.22766,\"longitude\":174.812761,\"title\":\"LocationMarker1 74 Title\"},{\"draggable\":false,\"icon\":null,\"latitude\":-41.228029,\"longitude\":174.812926,\"title\":\"LocationMarker2 80 Title\"}]"; 

var jsonObj = JSON.parse(jsonData); 
for(var index in jsonObj) 
    alert(jsonObj[index].title); 
Смежные вопросы