NEU! Datensicherung per FTP / FTPS
mit Anforderung Backup über Systemobjekt, Zeitschaltuhr und VISU
Viele Details dazu hier im Forum

Upgrade: Erweiterte Prüfung von Custom Logik Code
Upgrade: Navigation im Menübaum über Suche mit CTRL-F
Upgrade: Dekodierung für 17 weitere DPT im Busmonitor - mit Farbpunkt bei RGB
Upgrade: Weitere 31 neue physikalische Einheiten und verbesserte Darstellung / Auswahl
Upgrade: Zusätzliche Gestaltungsmöglichkeiten für VISU Widgets auf der Detailseite

Jetzt in der Insider Version 7 zur 4.5 - 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: 285
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 170 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: 2245
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 2034 Mal
Danksagung erhalten: 893 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: 285
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 170 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“