javascript - 迭代 JSON 给出字符,而不是元素

标签 javascript jquery json

我正在使用 .getJSON 将数据提取到图表中。由于某种原因,当我尝试循环遍历 JSON 数组时,它会为我提供每个单独的字符,就像它没有将其视为数组一样,但当我将数据转储到控制台时,它是格式正确的 JSON。

  <!DOCTYPE html>
  <html>
  <head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script>
  $.getJSON("/getgraphdata", function(result) {
      console.log(result.length);                                                                
      testFunction(result);
  });
 </script>
 </head>

 <body>
 <script>
 function testFunction(data) {
     console.log(data); // line 16
     //console.log(data.length); Gives total character count. 
     for(var i = 0; i < data.length; i++) {
         var obj = data[i];

         //console.log(obj.id);
     }
 }


 </script>
 </body>
 </html>

这是直接来自控制台的数据。 (来自第 16 行)

[{"id":"1375857","temperature":"78.98","humidity":"90.2","nodeName":"Bsmt_Front","timestamp":"1536424185"},{"id":"1375856","temperature":"78.98","humidity":"77.1","nodeName":"Bsmt_Back","timestamp":"1536424185"},{"id":"1375855","temperature":"77.54","humidity":"49.9","nodeName":"Living_Room","timestamp":"1536424180"},{"id":"1375854","temperature":"0","humidity":"0","nodeName":"Bsmt_Room","timestamp":"1536424179"},{"id":"1375853","temperature":"79.52","humidity":"82.7","nodeName":"Flow_Tent","timestamp":"1536424158"}]

我在这里使用了评分最高的答案JavaScript loop through json array?

如果我注释掉第 21 行,它会显示未定义。如果我执行 console.log(obj) ,它会迭代数组中的每个字符。

一切都表明它没有将其视为数组,但 [] 在那里。

最佳答案

您可以使用 JSON.parse 将字符串解析为 javascript 对象

所以在你的testFunction中你应该这样做

data = JSON.parse(data)

关于javascript - 迭代 JSON 给出字符,而不是元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52237248/

相关文章:

json - 如何在Go中解析firestore get()快照json

c# - 在 ASP.NET Web API 中将字典序列化为 JSON 数组

javascript - 调试从 JavaScript 调用的 .cs 文件

javascript - 有没有一种方法可以使用 dataSource.data() WITH 分组从 Kendo 网格访问数据?

javascript - 显示/隐藏具有关闭功能的多个div

jquery - 选择特定选择值时显示隐藏输入

c# - 在 json 之外的 C# 中创建动态对象

javascript - 基础顶栏 : Toggle drop-down on click instead of hover

Javascript - 命名空间与闭包之间的区别?

javascript - 更改图像 div 中的一张图像