Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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数据解析为ChartJS中使用的JQUERY变量_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript 将嵌套的json数据解析为ChartJS中使用的JQUERY变量

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

通过PHP的平面JSON输出,我得到了一个MySQL数据图表JS图。 ChartJS发布以下代码:

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。