[英]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"]
。 同樣,您已經知道鍵,例如number11
, data.field2.number11
或data["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.