我正在尝试使用GET HTTP请求从货币API加载JSON编码的数据。我发出了get http请求;但是,当我尝试输出时,我获得了[object Object]成功[object Object]。
这是我的代码:
var url = "https://free.currencyconverterapi.com/api/v6/currencies";
var url2 = "https://free.currencyconverterapi.com/api/v6/convert?q=USD_PHP,PHP_USD"
$.when(
$.getJSON(url, {
format: "json"
}),
$.getJSON(url, {
format: "json"
})
)
.done(function(data) {
console.log(data)
$.each(data, function(i, field) {
$("#results").append(field + " ");
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="results"></div>
答案 0 :(得分:1)
$("#results").append(field + " ");
field
是一个对象,调用toString()
方法时,您会得到[object Object]
根据您要执行的操作,您可能想要选择类似的内容
$("#results").append(JSON.stringify(field));
或
$("#results").append(JSON.stringify(field, null, 2));
答案 1 :(得分:1)
.done()
函数为每个已解决的请求提供了一个值数组,因此,由于您发出了2个请求,因此它将有2个参数。每个将是一个包含3个项目的数组,第一个包含您请求中的数据。
可通过results属性访问。
由于您在请求方法中使用了getJSON,因此数据将作为对象返回,并且如果您尝试通过添加将对象转换为字符串,则将获得[Object object]
,而使用JSON.stringify
var url = "https://free.currencyconverterapi.com/api/v6/currencies";
var url2 = "https://free.currencyconverterapi.com/api/v6/convert?q=USD_PHP,PHP_USD"
$.when(
$.getJSON(url, {
format: "json"
}),
$.getJSON(url2, {
format: "json"
})
)
.done(function(data1, data2) {
$("#results1").append(JSON.stringify(data1[0].results));
$("#results2").append(JSON.stringify(data2[0].results));
})
div{
display: block;
font-family: monospace;
white-space: pre;
margin: 1em 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="results1"></div>
<div id="results2"></div>