Действительно, было бы лучше, если бы вы могли реструктурировать свой ответ:
{
"first":1,
"last":1,
"other":3,
"highest_value":{"other":3}
}
, в этом случае вы бы получили к нему доступ следующим образом
element.highest_value.other
, если вы действительно не можете себе позволитьчтобы сделать это, но вы хотите сделать порядок выбора независимым (в случае, если структура данных меняется со временем), вам нужно сделать что-то вроде
data.forEach(function(obj){
if(obj.highest_value !== undefined){
console.log(object.highest_value.other);//this is the one you want
}
});
, чтобы работающая версия вашего кода выглядела примерно так:
$.getJSON('/ytl/public/api/first-hour-trades', function(data) {
$.each(data, function(firstHourTrades, element) {//this loops once for each object
if(element.first !== undefined){//we need to check if this is the object with the property "first"
$("#msg1").append($('<div>', {
text: element.first
}));
}
if(element.last !== undefined){
$("#msg2").append($('<div>', {
text: element.last
}));
}
if(element.other !== undefined){
$("#msg3").append($('<div>', {
text: element.other
}));
}
if(element.highest_value !== undefined){
$("#msg4").append($('<div>', {
text: element.highest_value.other
}));
}
});
});
хотя я действительно рекомендую переосмыслить вашу структуру данных, так как вы можете себе представить, что это будет довольно грязно, поскольку она становится все более сложной.