我有Json OUTPUT,它有highest_value
,我想在我的ajax中打印:
[{"first":1},{"last":1},{"other":3},{"highest_value":{"other":3}}]
如何在我的ajax中访问{"highest_value":{"other":3}
。
这是我的ajax代码:
<script>
$.getJSON('/ytl/public/api/first-hour-trades', function(data) {
$.each(data, function(firstHourTrades, element) {
$("#msg1").append($('<div>', {
text: element.first
}));
$("#msg2").append($('<div>', {
text: element.last
}));
$("#msg3").append($('<div>', {
text: element.other
}));
$("#msg4").append($('<div>', {
text: element.highest_value[0]
}));
});
});
</script>
&#13;
答案 0 :(得分:0)
如果data
是您展示的数组,那么find
就是
console.log(data
.find((prop) => prop.hasOwnProperty("highest_value")));
这将产生{"highest_value":{"other":3}}
。
要获得3
,请在.highest_value
获取第一个value of the object:
console.log(Object.values(data
.find((prop) => prop.hasOwnProperty("highest_value"))
.highest_value)[0]);
如果你知道它是第四个元素,那么你不需要找到它,你只需使用它来将3
作为text
。
$("#msg4").append($('<div>', {
text: Object.values(element.highest_value)[0]
}));
如果您不知道哪个元素具有highest_value
属性或者有多少元素,您可以像这样重写代码:
$.getJSON('/ytl/public/api/first-hour-trades', function(data){
const highest = data.splice(data.findIndex((prop) => prop.hasOwnProperty("highest_value")), 1)[0];
data.forEach((element, index) => $(`#msg${index + 1}`).append($('<div>', {
text: Object.values(element)[0]
})));
$(`#msg${data.length + 1}`).append($('<div>', {
text: Object.values(highest.highest_value)[0]
}));
});
数量越来越多的ID可能也没有必要,但这一切都取决于大图应该是什么样的。
答案 1 :(得分:0)
真的,如果你能重组你的回复可能是最好的:
{
"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
}));
}
});
});
虽然我真的建议重新考虑你的数据结构,因为你可以想象,随着它变得越来越复杂,它会非常混乱。