【问题标题】:how I get Value from object from Ajax [closed]我如何从 Ajax 的对象中获取价值 [关闭]
【发布时间】:2022-01-18 14:13:33
【问题描述】:

我在 java 脚本中有这个 Ajax 调用:

function getCamInfo(value) {
  var body = "TakeNewPic=" + value;
  var req = new XMLHttpRequest();

  req.onreadystatechange = function() {
    if (this.readyState === 4 && this.status === 200) {
      var res = document.getElementById("parg");
      var outpt = JSON.parse(this.responseText);
      res.innerHTML = outpt;

      //console.log(outpt);
      /* var link = outpt.state[0];  
       var tex = document.getElementById("linkP");
       tex.value = link;*/
    }
  }

  req.open(
    "POST",
    "post_req.php",
    true,
  );

  req.setRequestHeader(
    "content-type",
    "application/x-www-form-urlencoded"
  );

  req.send(body);
}

我在响应中得到了这个 JSON 对象:

{"fingerprint":"FIG_0163","state":{"_apiVersion":2,"batteryLevel":0.78,"_batteryState":"disconnect","_cameraError":[],"_captureStatus":"idle","_capturedPictures":0,"_compositeShootingElapsedTime":0,"_function":"mySetting","_latestFileUrl":"http://192.168.254.124/files/90014a68423861503e031db848764600/100RICOH/R0011105.JPG","_mySettingChanged":false,"_pluginRunning":false,"_pluginWebServer":true,"_recordableTime":0,"_recordedTime":0,"storageUri":"http://192.168.254.124/files/90014a68423861503e031db848764600/"}}

例如,我如何从这个对象中获取一个值:只有 Url 图片:

"_latestFileUrl":"http://192.168.254.124/files/90014a68423861503e031db848764600/100RICOH/R0011105.JPG"

非常感谢

【问题讨论】:

  • 我投票结束这个问题,因为没有尝试解决。

标签: javascript jquery json ajax object


【解决方案1】:

试试这个

var latestFileUrl = jsonObject.state._latestFileUrl;

【讨论】:

    【解决方案2】:

    用下面的修改你的 res.innerHTML。

    res.innerHTML = outpt.state._latestFileUrl;
    

    【讨论】:

      【解决方案3】:

      对于一个简单的版本:

      const _fetch = () => Promise.resolve({
        "fingerprint": "FIG_0163",
        "state": {
          "_apiVersion": 2,
          "batteryLevel": 0.78,
          "_batteryState": "disconnect",
          "_cameraError": [],
          "_captureStatus": "idle",
          "_capturedPictures": 0,
          "_compositeShootingElapsedTime": 0,
          "_function": "mySetting",
          "_latestFileUrl": "http://192.168.254.124/files/90014a68423861503e031db848764600/100RICOH/R0011105.JPG",
          "_mySettingChanged": false,
          "_pluginRunning": false,
          "_pluginWebServer": true,
          "_recordableTime": 0,
          "_recordedTime": 0,
          "storageUri": "http://192.168.254.124/files/90014a68423861503e031db848764600/"
        }
      })
      
      _fetch()
        .then(x => x.state["_latestFileUrl"])
        .then(console.log);

      对于一个过于复杂(但对我来说很有趣)的版本:

      const _fetch = () => Promise.resolve({
        "fingerprint": "FIG_0163",
        "state": {
          "_apiVersion": 2,
          "batteryLevel": 0.78,
          "_batteryState": "disconnect",
          "_cameraError": [],
          "_captureStatus": "idle",
          "_capturedPictures": 0,
          "_compositeShootingElapsedTime": 0,
          "_function": "mySetting",
          "_latestFileUrl": "http://192.168.254.124/files/90014a68423861503e031db848764600/100RICOH/R0011105.JPG",
          "_mySettingChanged": false,
          "_pluginRunning": false,
          "_pluginWebServer": true,
          "_recordableTime": 0,
          "_recordedTime": 0,
          "storageUri": "http://192.168.254.124/files/90014a68423861503e031db848764600/"
        }
      })
      
      const compose = (...fns) =>
        fns.reduceRight((prevFn, nextFn) =>
          (...args) => nextFn(prevFn(...args)),
          value => value
        );
      
      const prop = p => o => o[p];
      
      const getFileUrlFromResponse = compose(prop("_latestFileUrl"), prop("state"));
      
      _fetch()
        .then(getFileUrlFromResponse)
        .then(console.log);

      【讨论】:

        猜你喜欢
        • 2018-12-28
        • 1970-01-01
        • 1970-01-01
        • 2013-09-27
        • 2022-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多