遍历 JSON 对象在 TIMESTAMP 失败

编程入门 行业动态 更新时间:2024-10-04 17:31:48

<a href=https://www.elefans.com/category/jswz/34/1771029.html style=遍历 JSON 对象在 TIMESTAMP 失败"/>

遍历 JSON 对象在 TIMESTAMP 失败

我想通过 mySQL(MariaDB) 数据库响应提供的所有 JSON 数据。

我找到了一个函数来迭代获取和记录键:值对。

之后我想将所有这些值作为 HTML 发送到表格中(目前我不知道如何轻松地做到这一点,但这就是下一步。) (也许我可以通过创建“ul-li”结构来动态创建包含信息的表,如果它是对象或键:值对,以便能够作为正文发送到我的“视图” - 或者也许有更好的解决方案这样做..)

数据库响应的数据如下:

[
  {
    ID: 5,
    UID: 'E123456',
    LogDate: 2023-03-24T12:55:25.000Z,
    SensorName: 'Sensor1',
    SensorValue: '20.01'
  },
  {
    ID: 6,
    UID: 'E123456',
    LogDate: 2023-03-24T12:55:45.000Z,
    SensorName: 'Sensor1',
    SensorValue: '21.20'
  }
]

迭代JSON的函数是:

function iterateRecursively(object, callbackFunction) {
    // Walk through object
    for (var keyName in object) {
        // If the given parameter is an object, call the function over and 
        // over again, till you get a string or number        

        if (typeof object[keyName] === 'object') {
            console.log("Object - Typeof : " + typeof(keyName));
            iterateRecursively(object[keyName], callbackFunction);
        } else {
            // Callback function to do something with results outside of main function
            if (typeof callbackFunction === 'function') {
                callbackFunction(keyName, object[keyName]);
            }
        }
    }
}

这是对数据库的请求并记录数据:

let data = await db.getSensorData(FzID);

iterateRecursively(data, function (key, value) {
 console.log(key + " = " + value + "(" + typeof(key) + " : " + typeof(value) + ")");
    });

控制台日志:

Object - Typeof : string
ID = 5(string : number)
UID = E123456(string : string)
Object - Typeof : string
SensorName = Sensor1(string : string)
SensorValue = 20.01(string : string)
Object - Typeof : string
ID = 6(string : number)
UID = E123456(string : string)
Object - Typeof : string
SensorName = Sensor1(string : string)
SensorValue = 21.20(string : string)

DB中LogDate列的类型是“timestamp

为什么 LogDate 被忽略,我怎样才能得到这些值? 感谢您的帮助..

回答如下:

答案很简单,LogDate是“object”类型的。您传入的数组也是类型“object”。因此,要使其按照您的意愿工作,您需要检查它是否不是 Date 或 Array,因为 Array 也是类型“object”。

var obj = object[keyName];
if (typeof obj === 'object' && !(obj instanceof Date) && !Array.isArray(obj)) {
    console.log("Object - Typeof : " + typeof(keyName));
    iterateRecursively(object[keyName], callbackFunction);
}

更多推荐

遍历 JSON 对象在 TIMESTAMP 失败

本文发布于:2024-05-30 03:52:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770149.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:遍历   对象   JSON   TIMESTAMP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!