I am trying to parse a complex json object Here is the object.
I am using the following flow to parse the data
function getAllKeyValuePairs(obj, path = '') {
const results = [];
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const currentPath = path ? `${path}.${key}` : key;
const value = obj[key];
if (typeof value === 'object' && value !== null) {
results.push(...getAllKeyValuePairs(value, currentPath));
} else {
results.push({ path: currentPath, value: value });
}
}
}
return results;
}
const myJsonObject = msg.payload
const allKeyValuePairs = getAllKeyValuePairs(myJsonObject);
allKeyValuePairs.forEach(item => {
console.log(`${item.path}: ${item.value}`);
});
[{"id":"6644ed21fe795c03","type":"function","z":"bec7048b1f74f182","name":"function 29","func":"function getAllKeyValuePairs(obj, path = '') {\n const results = [];\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const currentPath = path ? `${path}.${key}` : key;\n const value = obj[key];\n\n if (typeof value === 'object' && value !== null) {\n results.push(...getAllKeyValuePairs(value, currentPath));\n } else {\n results.push({ path: currentPath, value: value });\n }\n }\n }\n\n return results;\n}\n\nconst myJsonObject = msg.payload\n\nconst allKeyValuePairs = getAllKeyValuePairs(myJsonObject);\n\nallKeyValuePairs.forEach(item => {\nconsole.log(`${item.path}: ${item.value}`);\n});","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":740,"wires":[["be6882c82fb414d3"]]},{"id":"be6882c82fb414d3","type":"debug","z":"bec7048b1f74f182","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":620,"y":740,"wires":[]},{"id":"d4ae6622b4e4681c","type":"template","z":"bec7048b1f74f182","name":"","field":"payload","fieldType":"msg","format":"json","syntax":"plain","template":"{\n \"version\": \"5.21.22\",\n \"system\": {\n \"manufacturer\": \"Gigabyte Technology Co., Ltd.\",\n \"model\": \"Z390 AORUS PRO WIFI\",\n \"version\": \"Default string\",\n \"serial\": \"Default string\",\n \"uuid\": \"032e02b4-0499-058e-e506-470700080009\",\n \"sku\": \"Default string\",\n \"virtual\": false\n },\n \"bios\": {\n \"vendor\": \"American Megatrends Inc.\",\n \"version\": \"F10\",\n \"releaseDate\": \"2019-06-04\",\n \"revision\": \"\",\n \"serial\": \"\"\n },\n \"baseboard\": {\n \"manufacturer\": \"Gigabyte Technology Co., Ltd.\",\n \"model\": \"Z390 AORUS PRO WIFI-CF\",\n \"version\": \"x.x\",\n \"serial\": \"\",\n \"assetTag\": \"\",\n \"memMax\": 68719476736,\n \"memSlots\": 4\n },\n \"chassis\": {\n \"manufacturer\": \"\",\n \"model\": \"\",\n \"type\": \"Desktop\",\n \"version\": \"\",\n \"serial\": \"\",\n \"assetTag\": \"\",\n \"sku\": \"\"\n },\n \"os\": {\n \"platform\": \"Windows\",\n \"distro\": \"Microsoft Windows 11 Pro\",\n \"release\": \"10.0.26120\",\n \"codename\": \"\",\n \"kernel\": \"10.0.26120\",\n \"arch\": \"x64\",\n \"hostname\": \"w8be-prod\",\n \"fqdn\": \"W8BE-PROD\",\n \"codepage\": \"437\",\n \"logofile\": \"windows\",\n \"serial\": \"00330-80021-43272-AA568\",\n \"build\": \"26120\",\n \"servicepack\": \"0.0\",\n \"uefi\": true,\n \"hypervisor\": false,\n \"remoteSession\": false\n },\n \"uuid\": {\n \"os\": \"596d850e-1cbc-456d-81c8-9dbeb723a679\",\n \"hardware\": \"032e02b4-0499-058e-e506-470700080009\",\n \"macs\": [\n \"b4:2e:99:8e:e5:47\"\n ]\n },\n \"versions\": {\n \"kernel\": \"10.0.26120\",\n \"openssl\": \"3.0.13+quic\",\n \"systemOpenssl\": \"\",\n \"systemOpensslLib\": \"\",\n \"node\": \"20.15.0\",\n \"v8\": \"11.3.244.8-node.23\",\n \"npm\": \"10.8.1\",\n \"yarn\": \"\",\n \"pm2\": \"\",\n \"gulp\": \"\",\n \"grunt\": \"\",\n \"git\": \"2.47.0.windows.2\",\n \"tsc\": \"\",\n \"mysql\": \"\",\n \"redis\": \"\",\n \"mongodb\": \"\",\n \"apache\": \"\",\n \"nginx\": \"\",\n \"php\": \"\",\n \"docker\": \"\",\n \"postfix\": \"\",\n \"postgresql\": \"\",\n \"perl\": \"\",\n \"python\": \"3.11.0\",\n \"python3\": \"\",\n \"pip\": \"22.3\",\n \"pip3\": \"22.3\",\n \"java\": \"\",\n \"gcc\": \"\",\n \"virtualbox\": \"\",\n \"bash\": \"\",\n \"zsh\": \"\",\n \"fish\": \"\",\n \"powershell\": \"5.1.26100.2200:\",\n \"dotnet\": \"4.8.09032\"\n },\n \"cpu\": {\n \"manufacturer\": \"Intel\",\n \"brand\": \"Core™ i9-9900K\",\n \"vendor\": \"GenuineIntel\",\n \"family\": \"6\",\n \"model\": \"158\",\n \"stepping\": \"13\",\n \"revision\": \"\",\n \"voltage\": \"\",\n \"speed\": 3.6,\n \"speedMin\": 3.6,\n \"speedMax\": 3.6,\n \"governor\": \"\",\n \"cores\": 16,\n \"physicalCores\": 8,\n \"performanceCores\": 16,\n \"efficiencyCores\": 0,\n \"processors\": 1,\n \"socket\": \"LGA1151\",\n \"flags\": \"de pse tsc msr mce sep mtrr mca cmov psn clfsh ds acpi mmx fxsr sse sse2 ss htt tm ia64 pbe\",\n \"virtualization\": false,\n \"cache\": {\n \"l1d\": 256,\n \"l1i\": 256,\n \"l2\": 2097152,\n \"l3\": 16777216\n }\n },\n \"graphics\": {\n \"controllers\": [\n {\n \"vendor\": \"Advanced Micro Devices, Inc.\",\n \"model\": \"ASUS Radeon RX 580 Series\",\n \"bus\": \"PCI\",\n \"vram\": 8192,\n \"vramDynamic\": true,\n \"subDeviceId\": \"2378148C\"\n }\n ],\n \"displays\": [\n {\n \"vendor\": \"(Standard monitor types)\",\n \"model\": \"Generic PnP Monitor\",\n \"deviceName\": \"\\\\\\\\.\\\\DISPLAY2\",\n \"main\": true,\n \"builtin\": false,\n \"connection\": \"DP\",\n \"resolutionX\": 3072,\n \"resolutionY\": 1728,\n \"sizeX\": 53,\n \"sizeY\": 30,\n \"pixelDepth\": \"32\",\n \"currentResX\": 3072,\n \"currentResY\": 1728,\n \"positionX\": 0,\n \"positionY\": 0,\n \"currentRefreshRate\": 60\n },\n {\n \"vendor\": \"\",\n \"model\": \"\",\n \"deviceName\": \"\\\\\\\\.\\\\DISPLAY1\",\n \"main\": false,\n \"builtin\": false,\n \"connection\": \"DP\",\n \"resolutionX\": 1920,\n \"resolutionY\": 1080,\n \"sizeX\": 70,\n \"sizeY\": 40,\n \"pixelDepth\": \"32\",\n \"currentResX\": 1920,\n \"currentResY\": 1080,\n \"positionX\": -1920,\n \"positionY\": 0,\n \"currentRefreshRate\": 60\n },\n {\n \"vendor\": \"\",\n \"model\": \"\",\n \"deviceName\": \"\\\\\\\\.\\\\DISPLAY3\",\n \"main\": false,\n \"builtin\": false,\n \"connection\": \"DP\",\n \"resolutionX\": 2560,\n \"resolutionY\": 1440,\n \"sizeX\": 53,\n \"sizeY\": 30,\n \"pixelDepth\": \"32\",\n \"currentResX\": 2560,\n \"currentResY\": 1440,\n \"positionX\": 3840,\n \"positionY\": 0,\n \"currentRefreshRate\": 60\n }\n ]\n },\n \"net\": [\n {\n \"iface\": \"Eth0\",\n \"ifaceName\": \"Intel(R) Ethernet Connection (7) I219-V\",\n \"default\": true,\n \"ip4\": \"192.168.0.64\",\n \"ip4subnet\": \"255.255.255.0\",\n \"ip6\": \"2601:151:8300:e9c:9673:3210:7700:1c43\",\n \"ip6subnet\": \"ffff:ffff:ffff:ffff::\",\n \"mac\": \"b4:2e:99:8e:e5:47\",\n \"internal\": false,\n \"virtual\": false,\n \"operstate\": \"up\",\n \"type\": \"wired\",\n \"duplex\": \"\",\n \"mtu\": \"\",\n \"speed\": 1000,\n \"dhcp\": true,\n \"dnsSuffix\": \"hsd1.wv.comcast.net\",\n \"ieee8021xAuth\": \"Not defined\",\n \"ieee8021xState\": \"Disabled\",\n \"carrierChanges\": 0\n },\n {\n \"iface\": \"Loopback Pseudo-Interface 1\",\n \"ifaceName\": \"Loopback Pseudo-Interface 1\",\n \"default\": false,\n \"ip4\": \"127.0.0.1\",\n \"ip4subnet\": \"255.0.0.0\",\n \"ip6\": \"::1\",\n \"ip6subnet\": \"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff\",\n \"mac\": \"00:00:00:00:00:00\",\n \"internal\": true,\n \"virtual\": false,\n \"operstate\": \"down\",\n \"type\": \"\",\n \"duplex\": \"\",\n \"mtu\": \"\",\n \"speed\": null,\n \"dhcp\": false,\n \"dnsSuffix\": \"\",\n \"ieee8021xAuth\": \"Not defined\",\n \"ieee8021xState\": \"Disabled\",\n \"carrierChanges\": 0\n },\n {\n \"iface\": \"Wi-Fi\",\n \"ifaceName\": \"Intel(R) Wireless-AC 9560 160MHz\",\n \"default\": false,\n \"ip4\": \"\",\n \"ip4subnet\": \"\",\n \"ip6\": \"\",\n \"ip6subnet\": \"\",\n \"mac\": \"\",\n \"virtual\": false,\n \"operstate\": \"down\",\n \"type\": \"wireless\",\n \"duplex\": \"\",\n \"mtu\": \"\",\n \"speed\": null,\n \"dhcp\": true,\n \"dnsSuffix\": \"\",\n \"ieee8021xAuth\": \"Not defined\",\n \"ieee8021xState\": \"Disabled\",\n \"carrierChanges\": 0\n }\n ],\n \"memLayout\": [\n {\n \"size\": 17179869184,\n \"bank\": \"BANK 1\",\n \"type\": \"DDR4\",\n \"ecc\": false,\n \"clockSpeed\": 3200,\n \"formFactor\": \"DIMM\",\n \"manufacturer\": \"04CD\",\n \"partNum\": \"F4-3200C16-16GVK\",\n \"serialNum\": \"00000000\",\n \"voltageConfigured\": 1.2,\n \"voltageMin\": 1.2,\n \"voltageMax\": 1.2\n },\n {\n \"size\": 17179869184,\n \"bank\": \"BANK 3\",\n \"type\": \"DDR4\",\n \"ecc\": false,\n \"clockSpeed\": 3200,\n \"formFactor\": \"DIMM\",\n \"manufacturer\": \"04CD\",\n \"partNum\": \"F4-3200C16-16GVK\",\n \"serialNum\": \"00000000\",\n \"voltageConfigured\": 1.2,\n \"voltageMin\": 1.2,\n \"voltageMax\": 1.2\n }\n ],\n \"diskLayout\": [\n {\n \"device\": \"\\\\\\\\.\\\\PHYSICALDRIVE4\",\n \"type\": \"SSD\",\n \"name\": \"SPCC M.2 PCIe SSD\",\n \"vendor\": \"\",\n \"size\": 256052966400,\n \"bytesPerSector\": 512,\n \"totalCylinders\": 31130,\n \"totalHeads\": 255,\n \"totalSectors\": 500103450,\n \"totalTracks\": 7938150,\n \"tracksPerCylinder\": 255,\n \"sectorsPerTrack\": 63,\n \"firmwareRevision\": \"S0614B0\",\n \"serialNum\": \"0100_0000_0000_0000.\",\n \"interfaceType\": \"NVMe\",\n \"smartStatus\": \"Ok\",\n \"temperature\": null\n },\n {\n \"device\": \"\\\\\\\\.\\\\PHYSICALDRIVE1\",\n \"type\": \"HD\",\n \"name\": \"ST2000DM001-1CH164\",\n \"vendor\": \"Seagate\",\n \"size\": 2000396321280,\n \"bytesPerSector\": 512,\n \"totalCylinders\": 243201,\n \"totalHeads\": 255,\n \"totalSectors\": 3907024065,\n \"totalTracks\": 62016255,\n \"tracksPerCylinder\": 255,\n \"sectorsPerTrack\": 63,\n \"firmwareRevision\": \"HP36\",\n \"serialNum\": \"Z1E8L0YY\",\n \"interfaceType\": \"SATA\",\n \"smartStatus\": \"Ok\",\n \"temperature\": null\n },\n {\n \"device\": \"\\\\\\\\.\\\\PHYSICALDRIVE0\",\n \"type\": \"HD\",\n \"name\": \"ST9640320AS\",\n \"vendor\": \"Seagate\",\n \"size\": 640132416000,\n \"bytesPerSector\": 512,\n \"totalCylinders\": 77825,\n \"totalHeads\": 255,\n \"totalSectors\": 1250258625,\n \"totalTracks\": 19845375,\n \"tracksPerCylinder\": 255,\n \"sectorsPerTrack\": 63,\n \"firmwareRevision\": \"0002HPM1\",\n \"serialNum\": \"5WX2KXLV\",\n \"interfaceType\": \"SATA\",\n \"smartStatus\": \"Ok\",\n \"temperature\": null\n },\n {\n \"device\": \"\\\\\\\\.\\\\PHYSICALDRIVE2\",\n \"type\": \"SSD\",\n \"name\": \"Samsung SSD 850 EVO 500GB\",\n \"vendor\": \"Samsung\",\n \"size\": 500105249280,\n \"bytesPerSector\": 512,\n \"totalCylinders\": 60801,\n \"totalHeads\": 255,\n \"totalSectors\": 976768065,\n \"totalTracks\": 15504255,\n \"tracksPerCylinder\": 255,\n \"sectorsPerTrack\": 63,\n \"firmwareRevision\": \"EMT02B6Q\",\n \"serialNum\": \"S2RANX0H825794M\",\n \"interfaceType\": \"SATA\",\n \"smartStatus\": \"Ok\",\n \"temperature\": null\n },\n {\n \"device\": \"\\\\\\\\.\\\\PHYSICALDRIVE3\",\n \"type\": \"SSD\",\n \"name\": \"Samsung SSD 970 EVO Plus 1TB\",\n \"vendor\": \"Samsung\",\n \"size\": 1000202273280,\n \"bytesPerSector\": 512,\n \"totalCylinders\": 121601,\n \"totalHeads\": 255,\n \"totalSectors\": 1953520065,\n \"totalTracks\": 31008255,\n \"tracksPerCylinder\": 255,\n \"sectorsPerTrack\": 63,\n \"firmwareRevision\": \"2B2Q\",\n \"serialNum\": \"0025_3851_0141_DF22.\",\n \"interfaceType\": \"NVMe\",\n \"smartStatus\": \"Ok\",\n \"temperature\": null\n }\n ]\n}","output":"json","x":260,"y":740,"wires":[["6644ed21fe795c03"]]},{"id":"839c0b83008329d3","type":"inject","z":"bec7048b1f74f182","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":740,"wires":[["d4ae6622b4e4681c"]]}]
The function works and I can output the results to the console but when I try to modify it to send the output to msg.payload the code fails.
Can some one show me how to send the console.log output as a message?
thx