Guten Tag in die Runde,
die JSON Funktionalität in PB ist eine große Hilfe. Es scheint, daß aber hier in Bezug auf die Übernahme von JSON values aus "nested objects" in eigene memory-Strukturen ein "Wissens-Loch" besteht:
Es sollen fertige JSON Daten übernommen werden. Die "normalen" JSON-Funktionen sind beherrscht. Bei nested objects landet jedoch nichts in der Strukturen. Es wird an der Konstruktion der Struktur passend zum vorgegeben JSON gehen: Beispiel:
Code:
; kommt normalerweise aus einer Datei, hier als String
Structure Men
id$
gender$
hair$
EndStructure
Define P.Men
Jin$ = "{"+Chr(34)+"id"+Chr(34)+":{"+Chr(34)+"gender"+Chr(34)+": "+Chr(34)+"male"+Chr(34)+", "+Chr(34)+"hair"+Chr(34)+": "+Chr(34)+"blonde"+Chr(34)+"}}"
JS1 = ParseJSON(#PB_Any, Jin$)
If JS1
ExtractJSONStructure(JSONValue(JS1), @P.Men, Men)
PrintN(P\id$)
PrintN(P\gender$)
PrintN(P\hair$)
EndIf
End
Die Struktur bleibt leer. What's the proper structure?
__________________________________________________
Code-Tags hinzugefügt und Code eingerückt
26.02.2015
RSBasic
Die echten JSONs sind strukturell sehr tief, sehr breit und sehr voluminös. Damit fängt die Arbeit hier erst jetzt an: PB ist meistens sehr durchsatzeffizient und es wird spannend, wie schnell das nun im Umgang mit den JSON functions wird.
Im Kern fasse ich das nun zu 2/3 gefüllte Wissensloch einmal so zusammen: JSON "object in object" wird in PB "structure in structure", oder ?
kann man die Stille so deuten, daß mein letztes Beispiel-JSON nicht mit native PB umzuwandeln ist?
(Bindestriche in names, JSON bool, multilevel structure)
die Stille kannst Du so deuten: "Der Peter hat leider keine Ahnung, ob und wie das mit den Bindestrichen umzusetzen ist".
Gegebenenfalls könnte man den JSON-String mittels String- oder RegEx-Operationen 'vorbehandeln' (Bindestriche und ähnlich problematisches entfernen), damit ExtractJSONStructure() funktioniert.
'Multilevel' dürfte mit geschickt geschachtelten Structures zu lösen sein.
Thanks, leider nicht so richtig, denn der Gag wäre ja die native JSON-Funktionalität in PB als performante Dauerlösung. Vielleicht wird JSON in PB ja noch komplettiert, wie z.B. Toleranz von dashes im key-value etc.
Die dashes können ja noch eliminiert werden. Aber die Übernahme von bools und die structure in structure ist als Thema nicht beherrscht.
Vielleicht gibt es ja noch eine wenig Hilfe.