Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON数组生成多维数组时出错_Javascript - Fatal编程技术网

Javascript 从JSON数组生成多维数组时出错

Javascript 从JSON数组生成多维数组时出错,javascript,Javascript,我使用JavaScript通过PHP从服务器获取数据 PHP从MySQL获取数据,将其编码为JSON数据,并通过HTTP协议将其发送到客户端——在我的例子中,就是浏览器 JavaScript(如下图所示)提取这些值并呈现图表。仅用于测试,我将打印JSONArray到StringArray的转换,这是PHP的输出 当我的JS代码达到以下要点时,有什么建议吗 myLogger("myLogger - newObject.dummmysetsJSONArr.entryID" + newObject.d

我使用JavaScript通过PHP从服务器获取数据

PHP从MySQL获取数据,将其编码为JSON数据,并通过HTTP协议将其发送到客户端——在我的例子中,就是浏览器

JavaScript(如下图所示)提取这些值并呈现图表。仅用于测试,我将打印JSONArray到StringArray的转换,这是PHP的输出

当我的JS代码达到以下要点时,有什么建议吗

myLogger("myLogger - newObject.dummmysetsJSONArr.entryID" + newObject.dummmysetsJSONArr.entryID);
它抛出以下错误,如控制台中所示:

   uncaught typeerror cannot read property 'entryID' of undefined
下面是一个将DB数据转换为JSON的示例:

{"dummmysetsJSONArr":[{"entryID":"1","distance":"100","calories":"50"},{"entryID":"2","distance":"200","calories":"100"},{"entryID":"3","distance":"300","calories":"150"},{"entryID":"4","distance":"400","calories":"200"},{"entryID":"5","distance":"500","calories":"250"},{"entryID":"6","distance":"600","calories":"300"}],"success":1}
这是我的JS:

    google.setOnLoadCallback(drawVisualization);

    function drawVisualization() {

      var req = false;
      var jsonarry;

      try {
          // most browsers
          req = new XMLHttpRequest();

          myLogger("myLogger - XMLHttpRequest() created");
      } catch (e){
          // IE
          try{
              req = new ActiveXObject("Msxml2.XMLHTTP");

              myLogger("myLogger - req = new ActiveXObject(Msxml2.XMLHTTP);");          
          } catch (e) {
              // try an older version
              try{
                  req = new ActiveXObject("Microsoft.XMLHTTP");

                  myLogger("myLogger - req = new ActiveXObject(Microsoft.XMLHTTP);");               
              } catch (e){

              }
          }
      }

  if (!req) { 
    myLogger("req === false");
  } else {

    myLogger("req === true");
  }

  // Use onreadystatechange property
  req.onreadystatechange = function() {

       //myLogger("myLogger - req.onreadystatechange = function(){");

      if(req.readyState == 4) {

          myLogger("myLogger - req.readyState == 4");

          if(req.status === 200) {

            myLogger("myLogger - req.status === 200");

            jsonarry = req.responseText;

            myLogger("myLogger - JSON ARRAY - " + jsonarry);

            myLogger(" ------------- ");

            var identedText = JSON.stringify(jsonarry, null, 4);

            var jsonString = JSON.stringify(jsonarry);

            myLogger("myLogger - Unindented jsonString - " + jsonString);

            var newObject = JSON.parse(jsonString);

            myLogger("myLogger - newObject " + newObject);

            myLogger("myLogger - newObject.dummmysetsJSONArr.entryID" + newObject.dummmysetsJSONArr.entryID); 
}

function myLogger(content) {
    if (window.console && window.console.log) {
        console.log("myLogger - " + content);
    }
}
编辑:通过删除不相关的位,我已将操作代码缩减为


欢迎提出任何意见

错误在这一行

myLogger("myLogger - newObject.dummmysetsJSONArr.entryID" + newObject.dummmysetsJSONArr.entryID);
当您尝试记录
newObject.dummysetsjsonarr.entryID

实际上,
newObject.dummysetsjsonarr.entryID
是未定义的,因为
newObject.dummysetsjsonarr
是一个数组


例如,
newObject.dummysetsjsonarr[0]。entryID
将是有效的。

如果在发布之前将代码缩减到相关部分,这将有助于阅读和回答。。既然
dummysetsjsonarr
是一个数组,它不应该是
newObject.dummysetsjsonarr[0]。entryID
应该是。。谢谢我是JS新手,但无论如何,我应该意识到我需要访问数组元素。