JSON API请求的自定义函数

时间:2014-07-26 19:21:21

标签: jquery json api

您好我正在从API请求数据,我想将结果添加到具有特定ID的Div。 它工作得很好但是当我尝试为它创建一个自定义函数时它停止工作。

它与我的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)})      
    })

[编辑]

我要求的JSON

{
  "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层。

1 个答案:

答案 0 :(得分:0)

我不确定你到底想要做什么,但你现在的代码总是会附加&#34; response.current.state&#34;到#play div。我认为您更可能想要将与请求连接的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); }
});

显然必须进行测试和重新设计以满足您的需求。主要问题是您尝试将对象属性作为不起作用的字符串访问