输出API数据时出现错误消息:“ [对象对象]成功[对象对象]

时间:2018-07-14 21:43:09

标签: javascript jquery get

我正在尝试使用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>

2 个答案:

答案 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>