将值从JSON转换为JavaScript
我有一个从JSON文件中提取的数据,然后我有一个绘制图形的JavaScript文件 以下是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() {
$(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
设置为该值。