【问题标题】:Custom Function for JSON API requestJSON API 请求的自定义函数
【发布时间】:2014-07-26 19:21:21
【问题描述】:

您好,我正在从 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 层。

【问题讨论】:

    标签: jquery json api


    【解决方案1】:

    我不确定您到底要做什么,但您当前的代码将始终将“response.current.state”附加到#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); }
    });

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

    【讨论】:

    • 我希望响应是可变的。这就是需要的样子。 html(response.current.state)
    • 嗯,我不确定当我将它放入我的 js 时我做错了什么,我得到的唯一响应是 [Object Object] 将我请求数据的 JSON 添加到我的问题中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多