Javascript 将嵌套的json数据解析为ChartJS中使用的JQUERY变量
通过PHP的平面JSON输出,我得到了一个MySQL数据图表JS图。 ChartJS发布以下代码:Javascript 将嵌套的json数据解析为ChartJS中使用的JQUERY变量,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,通过PHP的平面JSON输出,我得到了一个MySQL数据图表JS图。 ChartJS发布以下代码: function showGraph() { { $.post("data.php?id=0", function (data) { console.log(data); const date = []; const time = []; cons
function showGraph()
{
{
$.post("data.php?id=0",
function (data)
{
console.log(data);
const date = [];
const time = [];
const temperature = [];
const humidity = [];
//const name = [];
for (var i in data) {
date.push(data[i].date);
time.push(data[i].time);
temperature.push(data[i].temperature);
humidity.push(data[i].humidity);
name.push(data[i].name);
}
PHP脚本提供平面JSON数据,如:
{
"timestamp": "1582877101",
"time": "09:05",
"temperature": "18.90",
"humidity": "50.70"
},
{
"timestamp": "1582877161",
"time": "09:06",
"temperature": "18.90",
"humidity": "50.70"
},
由于JSON变为嵌套数据,我的图形不再工作。新的嵌套JSON如下所示:
[
{
"id": "0",
"name": "Logger 0",
"data": [
{
"date": "2020-02-28",
"time": "09:05",
"temperature": "18.90",
"humidity": "50.70"
},
{
"date": "2020-02-28",
"time": "09:06",
"temperature": "18.90",
"humidity": "50.70"
}
如何将嵌套的JSON数据再次解析为JQUERY变量?由于
数据现在是JSON响应的一个属性,您可以通过。请注意,data
现在是一个数组,因此必须使用,如下所示:
$.post('data.php?id=0',({name,data})=>{
console.log(名称、数据);
常数日期=[];
常数时间=[];
常数温度=[];
恒湿=[];
data.forEach(元素=>{
日期推送(元素日期);
时间。推(元素。时间);
温度.推力(元件.温度);
湿度.推力(元件.湿度);
});
});
答案如下:
$.getJSON("data.php?id=<?php printf($id)?>",
function (data)
{
const date = [];
const time = [];
const temperature = [];
const humidity = [];
const name = data[0].name;
data[0].data.forEach(element => {
date.push(element.date);
time.push(element.time);
temperature.push(element.temperature);
humidity.push(element.humidity);
})
$.getJSON(“data.php?id=”,
功能(数据)
{
常数日期=[];
常数时间=[];
常数温度=[];
恒湿=[];
常量名称=数据[0]。名称;
数据[0]。数据。forEach(元素=>{
日期推送(元素日期);
时间。推(元素。时间);
温度.推力(元件.温度);
湿度.推力(元件.湿度);
})
因此,我必须添加数据[0]。到循环中。谢谢,但是发出代码会创建一个完全空白的屏幕,而不是一个没有数据的图形。我认为第1步是让代码再次工作,第2步是升级到ES6。