javascript - 从 JSON 调用对象的值时,为什么必须用引号和加号括起来?

标签 javascript jquery json api annotations

当第一次尝试对 PunkAPI 进行调用时,我尝试附加图像(url 是 JSON 中返回的对象)

append("<img src='beer[i].image_url'/>");

这不起作用,因为(从控制台)正在向 http://projectURL.com/beer[i].image_url 发出请求。而不是http://apiURL/beer[i].image_url .

我从一个在线示例中看到,如果我将对象请求括在引号和加号中,它将正常工作:

append("<img src='"+beer[i].image_url+"'/>");

我想知道的是为什么需要加号和引号。提前致谢!


完整代码如下


 var request = new XMLHttpRequest();
  
request.open("GET", "https://api.punkapi.com/v2/beers?abv_gt=5"); 
  request.responseType = 'json';
  request.send();
  
  request.onload = function() {    
    var beer = request.response; 

    var i; 
    for(i=0; i<beer.length; i++){ 
      $("#demo").append("<img src='"+beer[i].image_url+"' />");
    }    
  };
  
  
  
  
    <body>
  
  <div id="demo">
    
  </div>
  
</body>

  
 <script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>

最佳答案

问题是,如果您不使用引号和加号来连接字符串,那么 JavaScript 将不知道您正在尝试连接变量值以将其用作最终字符串的一部分,并将其解释为简单的字符串字符串。

因此您需要按如下方式连接变量:

append("<img src='"+beer[i].image_url+"'/>");

或者在 es6 中,您可以使用反引号引用的字符串进行变量替换:

let source = beer[i].image_url;
append(`<img src="${source}" />`);

关于javascript - 从 JSON 调用对象的值时,为什么必须用引号和加号括起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50769033/

相关文章:

javascript - 在 JavaScript 中查找多维 JSON 对象不同级别的重复值

javascript - JQuery 事件每次加倍

arrays - Angular 6 : get array of objects from corresponding JSON through httpClient

c# - 在控制台应用程序中反序列化 Json

javascript - 谷歌浏览器扩展的自动化测试

javascript - 从父组件访问子组件的 FORMIK 表单字段值 - React JS

json - 在 Swift 中创建 JSON 数组

javascript - .className 和 style.cssFloat 等异常列表?

jQuery每个循环从除最后一级之外的所有级别获取选定的信息