Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
将值从JSON转换为JavaScript_Javascript_Json_Charts - Fatal编程技术网

将值从JSON转换为JavaScript

将值从JSON转换为JavaScript,javascript,json,charts,Javascript,Json,Charts,我有一个从JSON文件中提取的数据,然后我有一个绘制图形的JavaScript文件 以下是JSON文件: 下面是我绘制图形的JavaScript代码: $(document).ready(function(){ google.charts.load('current', {'packages': ['corechart']}); //alert('aa00'~ $('.error').hide(); $(".buttonSala").click(function() {

我有一个从JSON文件中提取的数据,然后我有一个绘制图形的JavaScript文件

以下是JSON文件:

下面是我绘制图形的JavaScript代码:

$(document).ready(function(){
  google.charts.load('current', {'packages': ['corechart']});
  //alert('aa00'~
  $('.error').hide();
  $(".buttonSala").click(function() {
    // validate and process form here
    $('.error').hide();
    var canal = $("#canalSala option:selected").val();
    var datai = $("#datainisala").val(); 
    var dataf = $("#datafimsala").val(); 

    //alert(canal);
    // Send the data using post
    var posting = $.post( "getSala.php", { canal: canal, dataini: datai, datafim: dataf } );

    // Put the results in a div
    posting.done(
      function(data) {
        // Set a callback to run when the Google Visualization API is loaded.

        var jsonData = JSON.parse(data).channels[canal].values;
        google.charts.setOnLoadCallback(function() {
          var dataArray = [["ts", 'values']];

          for (var i = 0; i < jsonData.length; i++) {
            var tempArray = [jsonData[i].ts, parseFloat(jsonData[i].value.replace(",", "."))];
            dataArray.push(tempArray);
          }

          // Create our data table out of JSON data loaded from server.
          var data = google.visualization.arrayToDataTable(
            dataArray
          );

          var options = {
            hAxis: {title: "Data/Hora", titleTextStyle: {color: "#333"}},
            vAxis: {title: "Temperatura", titleTextStyle: {color: "#333"}}
          };

          // Instantiate and draw our chart, passing in some options.
          var chart = new google.visualization.AreaChart(document.getElementById('chart_divsala'));
          chart.draw(data, options);
        });
      });
    return false;
  });
});
它使用ts数据进行绘制,“值”显示在图形、左侧和线条描述上。我如何访问JSON专有的“chname”来用这些信息填充图形描述?在这种情况下,“oxigénio(%)没有内部的马德拉皮波4”


我什么都试过了,但都没用

将ajax与数据类型json结合使用时。数据返回到对象中。在我的例子中,我添加success以在请求成功时获取数据。例如:

$.ajax({
  url: "getData.php",
  type: 'GET',
  dataType : "json",
  success: function (data) {
    data.forEach(function(object){
      //your code logic here

    });
  }
});

当您将ajax与数据类型json一起使用时。数据返回到对象中。在我的例子中,我添加success以在请求成功时获取数据。例如:

$.ajax({
  url: "getData.php",
  type: 'GET',
  dataType : "json",
  success: function (data) {
    data.forEach(function(object){
      //your code logic here

    });
  }
});

您可以使用
response.channels[canal].info.chname
访问json属性
chname
,其中
obj
是json文件中的整个对象

因此,替换这些行:

var jsonData = JSON.parse(data).channels[canal].values;
google.charts.setOnLoadCallback(function() {
    var dataArray = [["ts", 'values']];
为此:

var response = JSON.parse(data);
var jsonData = response.channels[canal].values;
var desciption = response.channels[canal].info.chname;
google.charts.setOnLoadCallback(function() {
    dataArray = [["ts", desciption ]];

您可以使用
response.channels[canal].info.chname
访问json属性
chname
,其中
obj
是json文件中的整个对象

因此,替换这些行:

var jsonData = JSON.parse(data).channels[canal].values;
google.charts.setOnLoadCallback(function() {
    var dataArray = [["ts", 'values']];
为此:

var response = JSON.parse(data);
var jsonData = response.channels[canal].values;
var desciption = response.channels[canal].info.chname;
google.charts.setOnLoadCallback(function() {
    dataArray = [["ts", desciption ]];

我没有注意到您正在用
jsonData=jsonData.channels[2]值覆盖
jsonData
。我的更新答案应该有效。仍然无效。我更新了脚本以匹配更新后的脚本,因为我使用了一些变量来更改获取json数据的curl。但基本上是一样的。我尝试了response.channels[2].info.chname而不是response.channels[canal].info.chname,因为这是包含当前通道的变量的名称,但仍然没有运气@asemahleIf如果我的编辑不起作用,您应该
console.log
响应
变量。您希望找到指向
chname
的属性路径,并将
description
设置为该值。我没有注意到您正在使用
jsonData=jsonData.channels[2]覆盖
jsonData
。我的更新答案应该有效。仍然无效。我更新了脚本以匹配更新后的脚本,因为我使用了一些变量来更改获取json数据的curl。但基本上是一样的。我尝试了response.channels[2].info.chname而不是response.channels[canal].info.chname,因为这是包含当前通道的变量的名称,但仍然没有运气@asemahleIf如果我的编辑不起作用,您应该
console.log
响应
变量。您希望找到指向
chname
的属性路径,并将
description
设置为该值。