KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Gelöst] [V4.0.1] HTTP-API: String wird vor Versenden eines JSON verändert (Backslash-Anführungszeichen)

Wissen, Planung & Diskussion zur Unterstützung von Rest-API & Webabfragen im Timberwolf Server.
Stellt uns hier Eure Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

[V4.0.1] HTTP-API: String wird vor Versenden eines JSON verändert (Backslash-Anführungszeichen)

#1

Beitrag von hans4711 »

Hallo Zusammen,

ich brauche für eine HTTP-API Anfrage ein JSON im Body welches ich durch eine String-Logik erzeuge. Der String kommt auch korrekt als Objekt-Anfrage an:

Bild

Beim Absenden wird jedoch aus jedem Anführungszeichen ein Backslash-Anführungszeichen:

Bild

Als Fehler bekomme ich dann:

Bild

Wie kann ich verhindern das die HTTP-API die Strings vor versenden manipuliert?
Habe ich da einen Denkfehler bzw. wie baut ihr JSON für den Versand an eine API zusammen?

Vielen Dank und viele Grüße
Zuletzt geändert von Parsley am Mo Aug 05, 2024 6:40 pm, insgesamt 1-mal geändert.
3500 XL ID:1339

MrWilson
Reactions:
Beiträge: 282
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 168 Mal

#2

Beitrag von MrWilson »

Die API baut dir das JSON bei Angabe von entsprechenden Selektoren und der nötigen Verknüpfung mit deinen Objekten selbstständig zusammen.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#3

Beitrag von hans4711 »

Danke für deine Antwort. Das mache ich so mit chat_id und text. Bei dem sekektor „keyboard“ muss ich ein array übergeben welches individuell durch eine Logik erstellt wird. Wenn ich das richtig verstehe kann ich Arrays mit der Api nicht bauen?
3500 XL ID:1339

Sun1453
Reactions:
Beiträge: 2216
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1978 Mal
Danksagung erhalten: 885 Mal

#4

Beitrag von Sun1453 »

Habe es zwar noch nie gemacht aber es soll gehen. Siehe der Anleitung siehe Wiki: https://elabnet.atlassian.net/wiki/spac ... tenstuktur
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#5

Beitrag von hans4711 »

@MrWilson , @Sun1453 Vielen Dank für Eure Antworten. Jetzt habe ich den Ansatz verstanden.

Jetzt habe ich nur das Problem das ich ein verschachteltes Array im JSON erzeugen muss:
[
["text1,
"text2"]
]
bzw. so soll das ganze JSON aussehen

Code: Alles auswählen

{
  "chat_id": "4711",
  "text": "Regenmengen: \r\nGestern: 5 Liter \r\nakt. Woche: 0 Liter \r\nVorwoche: 0 Liter \r\nakt. Monat: 0 Liter \r\nVormonat: 0 Liter \r\nakt. Jahr: 0 Liter \r\n",
  "reply_markup": {
    "keyboard": [
      ["text1,
      "text2"]
    ]
  }
}
Der Selektor reply_markup.keyboard[0] funktioniert, ein verschachteltes Array hätte ich vermutet baue ich mit reply_markup.keyboard[0].[0], hier bekomme ich jedoch vom TWS eine Fehlermeldung (Fehler beim Umwandeln der Objekt-Daten ins Sendeformat).

Kann hier jemand helfen?

Vielen Dank und viele Grüße
Zuletzt geändert von hans4711 am Mi Aug 07, 2024 9:57 am, insgesamt 1-mal geändert.
3500 XL ID:1339

MrWilson
Reactions:
Beiträge: 282
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 168 Mal

#6

Beitrag von MrWilson »

Hinter text1 fehlen die Anführungszeichen und mal den Punkt zwischen [0][0] weglassen.
Zuletzt geändert von MrWilson am Mi Aug 07, 2024 11:40 am, insgesamt 3-mal geändert.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#7

Beitrag von hans4711 »

@MrWilson Vielen Dank. Der Punkt zwischen [0][0] war das Problem. Jetzt funktionierts
3500 XL ID:1339
Antworten

Zurück zu „HTTP-API, REST & Web-Abfragen“