NEWS
JSON String auswerten
-
Hi Leute, ich weiß nicht mehr weiter....
ich möchte gerne folgenden JSON String durchsuchen und dabei den Wert von TEMPS.0.Chip mit rund 80° finden.
mit der Variante einen Festen "String" in den json_parsen zu schmeißen läuft alles.... wenn ich den String durch eine Variable ersetze klappt es nichtJSON String
{"STATUS":[{"STATUS":"S","When":1639436873,"Code":201,"Msg":"3 Temp(s)","Description":"BOSminer bosminer-plus-am1-s9 0.7.0-52331c5f"}],"TEMPS":[{"TEMP":0,"ID":6,"Board":60.6875,"Chip":80.25},{"TEMP":1,"ID":7,"Board":61.0,"Chip":82.5625},{"TEMP":2,"ID":8,"Board":61.3125,"Chip":83.9375}],"id":1}
und habe dafür folgenden Code in Blockly erzeugt
async function json_parser(input, json_path) { log(input); let obj = JSON.parse(input); let var_chip = getAttr(obj, 'TEMPS.0.Chip'); // designed for Blockly log(var_chip1 = getAttr(obj, json_path)); // designed for Blockly return var_chip; } exec('echo \'{"command":"temps"}\' | nc S9-2 4028', async function (error, result, stderr) { json_input = ('' + result); console.log((await json_parser('{"STATUS":[{"STATUS":"S","When":1639436873,"Code":201,"Msg":"3 Temp(s)","Description":"BOSminer bosminer-plus-am1-s9 0.7.0-52331c5f"}],"TEMPS":[{"TEMP":0,"ID":6,"Board":60.6875,"Chip":80.25},{"TEMP":1,"ID":7,"Board":61.0,"Chip":82.5625},{"TEMP":2,"ID":8,"Board":61.3125,"Chip":83.9375}],"id":1}', 'TEMPS.0.Chip'))); console.log((await json_parser(json_input, 'TEMPS.0.Chip'))); }); console.log("exec: " + 'echo \'{"command":"temps"}\' | nc S9-2 4028');
dazu kommt der output
00:14:38.412 info javascript.1 (32412) script.js.Instanz_0_debug.miner_werte_auslesen: registered 0 subscriptions and 0 schedules 00:14:38.417 info javascript.1 (32412) script.js.Instanz_0_debug.miner_werte_auslesen: {"STATUS":[{"STATUS":"S","When":1639436873,"Code":201,"Msg":"3 Temp(s)","Description":"BOSminer bosminer-plus-am1-s9 0.7.0-52331c5f"}],"TEMPS":[{"TEMP":0,"ID":6,"Board":60.6875,"Chip":80.25},{"TEMP":1,"ID":7,"Board":61.0,"Chip":82.5625},{"TEMP":2,"ID":8,"Board":61.3125,"Chip":83.9375}],"id":1} 00:14:38.418 info javascript.1 (32412) script.js.Instanz_0_debug.miner_werte_auslesen: 80.25 00:14:38.418 info javascript.1 (32412) script.js.Instanz_0_debug.miner_werte_auslesen: 80.25 00:14:38.418 info javascript.1 (32412) script.js.Instanz_0_debug.miner_werte_auslesen: {"STATUS":[{"STATUS":"S","When":1639437278,"Code":201,"Msg":"3 Temp(s)","Description":"BOSminer bosminer-plus-am1-s9 0.7.0-52331c5f"}],"TEMPS":[{"TEMP":0,"ID":6,"Board":60.6875,"Chip":80.25},{"TEMP":1,"ID":7,"Board":61.125,"Chip":82.6875},{"TEMP":2,"ID":8,"Board":61.375,"Chip":84.0}],"id":1} 00:14:38.419 error javascript.1 (32412) script.js.Instanz_0_debug.miner_werte_auslesen: SyntaxError: Unexpected token in JSON at position 292 00:14:38.419 error javascript.1 (32412) at json_parser (script.js.Instanz_0_debug.miner_werte_auslesen:76:20) 00:14:38.420 error javascript.1 (32412) at script.js.Instanz_0_debug.miner_werte_auslesen:88:22
Besten Dank schon mal für eure Hilfe!
-
@danny-0 Habe das Problem in Griff bekommen... beim Auswerten über den exec Befehl war ein Leerzeichen am Ende. Das habe ich entfernt und schon läuft es