@Kurzer: wenn es Groß/Kleinschreibung nicht ankommt, dass Flag #PB_JSON_NoCase verwenden:
https://www.purebasic.com/documentation ... ejson.html
PHP JSON != SpiderBasic JSON?
Re: PHP JSON != SpiderBasic JSON?
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Re: PHP JSON != SpiderBasic JSON?
Danke für den Hinweis, didge.
Prinzipiell habe ich kein Problem damit, dass die Strukturfelder so heißen müssen wie die Feldbezeichner im JSON. Ich finde es nur unerwartet und es steht leider auch nicht in der Hilfe beschrieben.
Generell dachte ich, dass die JSON-Elemente in eine "egal wie benannte" Struktur extrahiert werden können und es dabei nur darauf ankommt, dass die Strukturelemente den zur JSON Struktur passenden Datentypen haben. Letztendlich ist eine Struktur ja nur ein Stück Speicher der über (im Quellcode) benannte Offset angesprochen wird. Dass der Name der Strukttufelder zur Laufzeit überhaupt noch relevant ist, habe ich nicht erwartet. Ich dachte der Compiler macht da intern eine anonyme Offset-Tabelle draus.
In PureBasic läuft es mit ExtractJSONxyz() übrigens genau so wie in SpiderBasic, was ich noch weniger erwarten würde. Dort gibt's ja keine Javascript-Konventionen, die der PB Compiler evtl. beachten müsste. Und auch dort ist kein Hinweis in der Hilfe zu finden, dass die Feldnamen der PB Struktur mit den Feldbezeichnungen im JSON übereinstimmen müssen.
https://www.purebasic.com/documentation ... nlist.html
Wenn Du das Beispiel aus der Hilfe nimmst und die Felder x und y in der Strukturdefinition (und in der Debugzeile) änderst, dann funktioniert es nicht mehr.
Prinzipiell habe ich kein Problem damit, dass die Strukturfelder so heißen müssen wie die Feldbezeichner im JSON. Ich finde es nur unerwartet und es steht leider auch nicht in der Hilfe beschrieben.
Generell dachte ich, dass die JSON-Elemente in eine "egal wie benannte" Struktur extrahiert werden können und es dabei nur darauf ankommt, dass die Strukturelemente den zur JSON Struktur passenden Datentypen haben. Letztendlich ist eine Struktur ja nur ein Stück Speicher der über (im Quellcode) benannte Offset angesprochen wird. Dass der Name der Strukttufelder zur Laufzeit überhaupt noch relevant ist, habe ich nicht erwartet. Ich dachte der Compiler macht da intern eine anonyme Offset-Tabelle draus.
In PureBasic läuft es mit ExtractJSONxyz() übrigens genau so wie in SpiderBasic, was ich noch weniger erwarten würde. Dort gibt's ja keine Javascript-Konventionen, die der PB Compiler evtl. beachten müsste. Und auch dort ist kein Hinweis in der Hilfe zu finden, dass die Feldnamen der PB Struktur mit den Feldbezeichnungen im JSON übereinstimmen müssen.
https://www.purebasic.com/documentation ... nlist.html
Wenn Du das Beispiel aus der Hilfe nimmst und die Felder x und y in der Strukturdefinition (und in der Debugzeile) änderst, dann funktioniert es nicht mehr.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: PHP JSON != SpiderBasic JSON?
nunja, irgendwo muss ja eine Zuweisung JSON -> Struktur erfolgen. Da die Reihenfolge der JSON-Objekte innerhalb eines Knotens beliebig sein kann und JSON case-sensitive ist, kann die Zuweisung nur über case-sensitive Benennung in der Struktur erfolgen.
Grüße ... Peter
Grüße ... Peter
Hygge
Re: PHP JSON != SpiderBasic JSON?
User #Null hat's erklärt.
https://www.purebasic.fr/english/viewto ... 13&t=75795
JSON beachtet die Reihenfolge der Elemente unter Umständen nicht. Somit können sich PB und SB nicht auf die Reihenfolge der im JSON-String enthaltenen Elemente verlassen. Eine korrekte Zuordnung zur einer Struktur ist daher nur möglich, wenn man das über den Namen der Strukturfelder abgleichen kann. Macht Sinn.
EDIT: Kiffi war schneller.
https://www.purebasic.fr/english/viewto ... 13&t=75795
JSON beachtet die Reihenfolge der Elemente unter Umständen nicht. Somit können sich PB und SB nicht auf die Reihenfolge der im JSON-String enthaltenen Elemente verlassen. Eine korrekte Zuordnung zur einer Struktur ist daher nur möglich, wenn man das über den Namen der Strukturfelder abgleichen kann. Macht Sinn.
EDIT: Kiffi war schneller.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.