无法从 API 请求打印数据



我正在尝试学习使用 API 调用和响应,我需要来自 api 响应的基本值,但我无法让它工作。所以这是我的问题;

(function worker() {
$.get('URL', function(data) {
$('#numbers').html(data); });
})();

我使用此代码并且工作正常,并将 API 响应写入我的 HTML 页面。此外,API 调用以这种格式返回值;

{
"success":"true",
"field1": {"number1":"number1_val","number2":"number2_val"},
"field2": {"number11":"number11_val","number22":"number22_val"}
}

现在,我尝试从 API 响应中写入值,并且我成功地编写了这样的"成功"值;

$('#success_val').html(data.success);

它在给定#success_val字段中为我的 HTML 网站打印了true值。但是,当我尝试编写字段 1 或字段 1 的第一个值时,我没有成功。我试过了

$('#numbers').html(data.field1); => No success, empty page
$('nu#mbers').html(data.field1[0]); => No success, empty page

因此,在这一点上,我需要存储和使用字段 2 中的"number11"值。我已经阅读并搜索了一个多小时,发现这个 api 返回不是有效的"数组"返回,而是称为"字段"(我可能是错的(,但我找不到任何关于如何从这个 api 响应中获取"number11"数据的信息。

$('#numbers').html(data.field1); => No success, empty page

data.field1肯定存在吗? 或拼写检查。

您可以通过Object.keys(data)获取密钥。

如果存在数据,则返回["success", "filed2", "field2"]。 同样,您已经知道密钥,例如number11data.field2.number11data["field2"]["number11"]返回值。 如果您不知道键,data["filed2"][Object.keys(data)[0]]返回值

多亏了https://stackoverflow.com/users/10366589/sh-k 我以给定的方式解决了这个问题;

由于我无法将输出从 field2 打印到 HTML,因此我使用此代码检查了 field2 上的键;

alert(Object.keys(data.field2));

它返回了

number11,number22

由于我只需要该 API 响应中的数字 11,因此我执行以下操作;

var.storednumber = Object.keys(data.field2);
var.storednumber = storednumber[0];
$('#numbers').html(storednumber);

我能够毫无问题地将我想要的数字打印在屏幕上:)

对于我遇到的问题,可能会有更好的解决方案或修复程序,但就目前而言,这已经解决了。我想问题出在 API 响应类型上,因为它不返回数组格式的数据。

相关内容

  • 没有找到相关文章

最新更新