Forum: Netzwerke
Delphi
by Codehunter,
22. Jan 2021
Ich muss das Montag mal in Ruhe durchgehen. Eben noch mal kurz mit der 10.3 CE getestet, da verhält sich das auch anders. Irgendwas stimmt mit dem TJSONObject-Parser in meinem dienstlichen 10.2.3 Pro nicht. Jetzt ist aber erst mal Wochenende :lol:
Forum: Netzwerke
Delphi
by Codehunter,
22. Jan 2021
Ich habe den Parser jetzt dahingehend angepasst, dass man mit einem XPath "/" ein Rootelement ohne Objektstruktur als Wert ansprechen kann.
Davon unabhängig ist das Lesen von Bool-Strings mit TJSONObject dennoch seltsam:if ParseJSONValue('"true"') is TJSONBool then ... // Ergibt ein JA Womit immer noch nicht geklärt ist, wie der Parser hier eigentlich Strings von Bools unterscheidet.
...
Forum: Netzwerke
Delphi
by Codehunter,
22. Jan 2021
Ja da muss man höllisch aufpassen. Wenn dort C-kompatible Vergleiche geschehen, dann gilt:
(links Client-Request, rechts Server)
true=true
false=false
"true"=true
"false"=true
0=false
1=true
>1=true
Forum: Netzwerke
Delphi
by Codehunter,
22. Jan 2021
Wenn man auf https://jsonformatter.curiousconcept.com/# vertrauen möchte, wäre es nach RFC8259 und RFC7159 in beiden Schreibweisen valide, nach RFC4627 und ECMA404 keine von beiden. Immer wieder schön wenn die Standards so eindeutig sind :evil:
Bei TJSONObject ist mir ehrlich gesagt völlig egal, ob es als String oder Bool interpretiert wird. Ich caste das einfach nach Bedarf von TJSONValue...
Forum: Netzwerke
Delphi
by Codehunter,
22. Jan 2021
Hallo!
Das ist mal wieder eine Frage wo mir einfach kein gescheiter Titel eingefallen ist ^^
Ein REST-Server antwortet mir bei einem Request mit "true" im Response Body. Also nur diese vier Buchstaben, ohne jeglichen weiteren Markup. Wenn ich das so mit TJSONObject.ParseJSONValue() lade, gibt es mir ein TJSONBool-Objekt zurück. Jetzt frage ich mich, ob das "true" als solches überhaupt...