зацикливание объекта json с помощью javascript / jquery

#javascript #jquery #json #ajax

#javascript #jquery #json #ajax

Вопрос:

Мой объект json выглядит так, как показано ниже, и я хочу зацикливать только «данные». когда я пытаюсь получить доступ с objparse.data помощью, он выдает null. Пожалуйста, подскажите мне, как зациклить «данные» в объекте objparse.

 objparse =  "{"success":true,"message":"","data":[{"vehModelCode":"0824","vehModelDesc":"xA"},{"vehModelCode":"0825","vehModelDesc":"xB"},]}"
  

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

1. Это строка JSON, а не объект…

2. Поскольку objParse является строкой, поэтому он выдает значение null. Попробуйте использовать : var newObj = eval(objparse); А затем использовать newObj.data .

3. Также рассмотрите возможность использования $.getJSON() — затем попросите обратный вызов (второй аргумент) принять аргумент like responseData и использовать responseData.data

Ответ №1:

Похоже, проблема с вашим примером заключается в том, что JSON недействителен из-за конечной запятой, поэтому передача его JSON.parse() завершается ошибкой.

..."vehModelDesc":"xB"},]}" должно быть "vehModelDesc":"xB"}]}" (удалена последняя запятая).

Как только это будет исправлено, вы можете сделать:

var mydata = JSON.parse(object).data

и тогда mydata будет тип массива, для которого вы можете вызвать любой из методов массива ( map , forEach , и т.д.)

Ответ №2:

Проверьте пример:

 var objparsed =  {"success":true,"message":"","data":[{"vehModelCode":"0824","vehModelDesc":"xA"},{"vehModelCode":"0825","vehModelDesc":"xB"}]};
for (var z in objparsed['data']) {
    console.log(objparsed['data'][z]);
}
var objparse =  '{"success":true,"message":"","data":[{"vehModelCode":"0824","vehModelDesc":"xA"},{"vehModelCode":"0825","vehModelDesc":"xB"}]}';
var result = JSON.parse(objparse);
for (var z in result['data']) {
    console.log(result['data'][z]);
}
  

Ответ №3:

Сначала вы должны проанализировать строку JSON.

 var data = JSON.parse(objparse).data;
data.forEach(function(model){
  /* DO STUFF */
});
  

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

1. var data = JSON.parse(objparse).data; выбрасывается как [объект][объект]

Ответ №4:

Я думаю, вы можете сделать следующий фрагмент кода

 var objparse =  "{"success":true,"message":"","data":[{"vehModelCode":"0824","vehModelDesc":"xA"},{"vehModelCode":"0825","vehModelDesc":"xB"},]}"
var obj = eval("("  objparse   ')');
obj.data.forEach(function(model){alert(model);});  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  

Надеюсь, это поможет