簡體   English   中英

無法從API請求中打印數據

[英]Can not print data from API request

我正在嘗試學習使用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價值。 但是,當我嘗試寫入field1或field1的第一個值時,我沒有成功。 我試過了

$('#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響應中的number11,所以執行了以下操作;

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

而且我可以毫無問題地在屏幕上打印出想要的號碼:)

對於我遇到的問題,可能有更好的解決方案或解決方案,但是目前,此問題已解決。 我猜問題出在API響應類型上,因為它不返回數組格式的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM