我想通过MySQL(MariaDB)DB响应提供的所有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]);
}
}
}
}
这是对DB的请求并记录数据:
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)
数据库中的LogDate列类型为“timestamp”
**为什么LogDate被忽略,如何获取这些值?**感谢帮助。
1条答案
按热度按时间jtoj6r0c1#
答案很简单,LogDate的类型是“object”。你传入的数组也是“object”类型。所以要让它像你想的那样工作,你需要检查它是否不是Date或Array,因为Array也是“object”类型。