docs: update JSON field type checks from JsonObject to String for improved validation

This commit is contained in:
Manuel Weiser 2025-02-21 17:11:48 +01:00
parent 4992f5f433
commit 38b68aecfc
3 changed files with 11 additions and 11 deletions

View File

@ -186,7 +186,7 @@ bool updateSpoolTagId(String uidString, const char* payload) {
} }
// Überprüfe, ob die erforderlichen Felder vorhanden sind // Überprüfe, ob die erforderlichen Felder vorhanden sind
if (!doc["sm_id"].is<JsonObject>() || doc["sm_id"].as<String>() == "") { if (!doc["sm_id"].is<String>() || doc["sm_id"].as<String>() == "") {
Serial.println("Keine Spoolman-ID gefunden."); Serial.println("Keine Spoolman-ID gefunden.");
return false; return false;
} }
@ -368,7 +368,7 @@ bool checkSpoolmanExtraFields() {
for (uint8_t s = 0; s < extraLength; s++) { for (uint8_t s = 0; s < extraLength; s++) {
bool found = false; bool found = false;
for (JsonObject field : doc.as<JsonArray>()) { for (JsonObject field : doc.as<JsonArray>()) {
if (field["key"].is<JsonObject>() && field["key"] == extraFields[s]) { if (field["key"].is<String>() && field["key"] == extraFields[s]) {
Serial.println("Feld gefunden: " + extraFields[s]); Serial.println("Feld gefunden: " + extraFields[s]);
found = true; found = true;
break; break;
@ -430,7 +430,7 @@ bool checkSpoolmanInstance(const String& url) {
String payload = http.getString(); String payload = http.getString();
JsonDocument doc; JsonDocument doc;
DeserializationError error = deserializeJson(doc, payload); DeserializationError error = deserializeJson(doc, payload);
if (!error && doc["status"].is<JsonObject>()) { if (!error && doc["status"].is<String>()) {
const char* status = doc["status"]; const char* status = doc["status"];
http.end(); http.end();
@ -469,7 +469,7 @@ bool saveSpoolmanUrl(const String& url) {
String loadSpoolmanUrl() { String loadSpoolmanUrl() {
JsonDocument doc; JsonDocument doc;
if (loadJsonValue("/spoolman_url.json", doc) && doc["url"].is<JsonObject>()) { if (loadJsonValue("/spoolman_url.json", doc) && doc["url"].is<String>()) {
return doc["url"].as<String>(); return doc["url"].as<String>();
} }
Serial.println("Keine gültige Spoolman-URL gefunden."); Serial.println("Keine gültige Spoolman-URL gefunden.");

View File

@ -58,7 +58,7 @@ bool saveBambuCredentials(const String& ip, const String& serialnr, const String
bool loadBambuCredentials() { bool loadBambuCredentials() {
JsonDocument doc; JsonDocument doc;
if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is<JsonObject>()) { if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is<String>()) {
// Temporäre Strings für die Werte // Temporäre Strings für die Werte
String ip = doc["bambu_ip"].as<String>(); String ip = doc["bambu_ip"].as<String>();
String code = doc["bambu_accesscode"].as<String>(); String code = doc["bambu_accesscode"].as<String>();
@ -270,9 +270,9 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
} }
// Prüfen, ob "print->upgrade_state" und "print.ams.ams" existieren // Prüfen, ob "print->upgrade_state" und "print.ams.ams" existieren
if (doc["print"]["upgrade_state"].is<JsonObject>()) { if (doc["print"]["upgrade_state"].is<String>()) {
// Prüfen ob AMS-Daten vorhanden sind // Prüfen ob AMS-Daten vorhanden sind
if (!doc["print"]["ams"].is<JsonObject>() || !doc["print"]["ams"]["ams"].is<JsonObject>()) { if (!doc["print"]["ams"].is<String>() || !doc["print"]["ams"]["ams"].is<String>()) {
return; return;
} }
@ -315,7 +315,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
} }
// Prüfe die externe Spule // Prüfe die externe Spule
if (!hasChanges && doc["print"]["vt_tray"].is<JsonObject>()) { if (!hasChanges && doc["print"]["vt_tray"].is<String>()) {
JsonObject vtTray = doc["print"]["vt_tray"]; JsonObject vtTray = doc["print"]["vt_tray"];
bool foundExternal = false; bool foundExternal = false;
@ -363,7 +363,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
ams_count = amsArray.size(); ams_count = amsArray.size();
// Wenn externe Spule vorhanden, füge sie hinzu // Wenn externe Spule vorhanden, füge sie hinzu
if (doc["print"]["vt_tray"].is<JsonObject>()) { if (doc["print"]["vt_tray"].is<String>()) {
JsonObject vtTray = doc["print"]["vt_tray"]; JsonObject vtTray = doc["print"]["vt_tray"];
int extIdx = ams_count; // Index für externe Spule int extIdx = ams_count; // Index für externe Spule
ams_data[extIdx].ams_id = 255; // Spezielle ID für externe Spule ams_data[extIdx].ams_id = 255; // Spezielle ID für externe Spule

View File

@ -49,7 +49,7 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
} }
else if (doc["type"] == "writeNfcTag") { else if (doc["type"] == "writeNfcTag") {
if (doc["payload"].is<JsonObject>()) { if (doc["payload"].is<String>()) {
// Versuche NFC-Daten zu schreiben // Versuche NFC-Daten zu schreiben
String payloadString; String payloadString;
serializeJson(doc["payload"], payloadString); serializeJson(doc["payload"], payloadString);
@ -235,7 +235,7 @@ void setupWebserver(AsyncWebServer &server) {
html.replace("{{spoolmanUrl}}", spoolmanUrl); html.replace("{{spoolmanUrl}}", spoolmanUrl);
JsonDocument doc; JsonDocument doc;
if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is<JsonObject>()) { if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is<String>()) {
String bambuIp = doc["bambu_ip"].as<String>(); String bambuIp = doc["bambu_ip"].as<String>();
String bambuSerial = doc["bambu_serialnr"].as<String>(); String bambuSerial = doc["bambu_serialnr"].as<String>();
String bambuCode = doc["bambu_accesscode"].as<String>(); String bambuCode = doc["bambu_accesscode"].as<String>();