2014-07-26 99 views
1

嗨我正在從API請求數據,我想將結果添加到具有特定ID的Div。 它工作得很好,但當我試圖爲它創建一個自定義函數時,它停止工作。JSON API請求的自定義函數

它與我的fullrequest變量有關。但我不知道如何去做。

我的HTML:

<script> 
OctoGET0('GET', '/api/connection', 'current.state' , '#play') 
</script> 

我的jQuery:

function webAPI(method, location , data, request , id) { 
    var fullrequest = 'response.'+request; 

    $.ajax({ 
     url: Url + location , 
     type: method, 
     dataType: 'json', 
     beforeSend: setHeader, 
     data: data, 
     success: (function(response) { $(id).html(fullrequest)})  
    }) 

[編輯]

我想申請

{ 
    "current": { 
"baudrate": null, 
"state": "Closed", 
"port": null 
    }, 
    "options": { 
"portPreference": null, 
"autoconnect": false, 
"baudrates": [ 
    250000, 
    230400, 
    115200, 
    57600, 
    38400, 
    19200, 
    9600 
], 
"ports": [ 
    "/dev/ttyAMA0" 
], 
"baudratePreference": null 
    } 
} 

一些請求進入更深比2的JSON層。

回答

0

我不確定你到底在做什麼,但是你現在的代碼會總是在「#play div」中附加「response.current.state」。我認爲你更可能希望將與請求連接的API的響應附加到div中。此外,你不應該有括號包裝你的成功功能。最終的結果會是這樣:

[編輯]

function webAPI(method, location , data, request , id) {
$.ajax({ url: Url + location , type: method, dataType: 'json', beforeSend: setHeader, data: data, success: function(response) { var returnValue = response; var parts = request.split('.'); for (var i=0;i < parts.length;i++) { if (typeof returnValue == 'Object') { returnValue = returnValue[parts[i]]; } } $(id).html(returnValue); }
});

這顯然已經進行測試和修改,以滿足您的需求。主要問題是你試圖訪問一個對象屬性作爲不起作用的字符串

+0

我想響應是可變的。 這是需要的樣子。 html(response.current.state) –

+0

嗯我不知道什麼即時通訊做錯了,當我適應它在我的js我得到的唯一的迴應是[對象對象] 添加JSON我要求從我的問題的數據 –