ExtractJSONStructure mit einem Array an JSON Objekten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

ExtractJSONStructure mit einem Array an JSON Objekten

Beitrag von X360 Andy »

Hallo Zusammen,

ich habe eine Frage bzgl. der ExtractJSONStructure Funktion.

Wie verwende ich die Funktion wenn ich ein Array an JSON Objekten in eine Structure packen möchte?

Folgender Code ( mit einem JSON Array ) gibt kein Inhalt aus. Habe ich nur ein JSON Objekt als String zum parsen, funktioniert das ganze.

Code: Alles auswählen

Structure af
    sku.s
EndStructure
  
ParseJSON(1,"[{"+Chr(34)+"sku"+Chr(34)+":"+Chr(34)+"retoure"+Chr(34)+"},{"+Chr(34)+"sku"+Chr(34)+":"+Chr(34)+"test"+Chr(34)+"}]")
Debug ComposeJSON(1, #PB_JSON_PrettyPrint)
ExtractJSONStructure(JSONValue(1), @D.af, af)

Debug D\sku

Code: Alles auswählen

{
  "sku": "retoure"
}
Array:

Code: Alles auswählen

[
  {
    "sku": "retoure"
  },
  {
    "sku": "test"
  }
]
Besten Dank
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: ExtractJSONStructure mit einem Array an JSON Objekten

Beitrag von man-in-black »

Hi,

dein Beispiel kann gar nicht funktionieren. ExtractJSONStructure() versucht die JSON Daten in einen Speicher gleichen Aufbaus (Struktur,...)
zu packen. Bei einem Element ist die Zuordnung zu deiner Variable D eindeutig; PB interpretiert die Daten als einen nativen Datentyp.

Bei mehreren Elementen müsste folglich D selbst ein Array sein:

Code: Alles auswählen

Structure af
  sku.s
EndStructure
 
ParseJSON(1,"[{"+Chr(34)+"sku"+Chr(34)+":"+Chr(34)+"retoure"+Chr(34)+"},{"+Chr(34)+"sku"+Chr(34)+":"+Chr(34)+"test"+Chr(34)+"}]")
Debug ComposeJSON(1, #PB_JSON_PrettyPrint)

Dim D.af(JSONArraySize(JSONValue(1)))

For x = 0 To JSONArraySize(JSONValue(1))-1
  ExtractJSONStructure(GetJSONElement(JSONValue(1), x), @D(x), af)
Next

Debug D(0)\sku
Debug D(1)\sku
Angenommen, du wolltest alles unter \sku packen, kannst du nicht auf ExtractJSONStructure() zurückgreifen.
\sku hat den Datentyp String und entspricht somit nichtmehr der JSON Struktur:

Code: Alles auswählen

Structure af
  Array sku.s(1)
EndStructure

...
ExtractJSONStructure(JSONValue(1), D\sku(), af)    ;<< hier würden lauter "sku" (JSON) nach \sku\s (PB) geschrieben - passt nicht

MFG
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: ExtractJSONStructure mit einem Array an JSON Objekten

Beitrag von X360 Andy »

Super, vielen Dank, ist damit gelöst ;) Einfacher Logikfehler ;)
Antworten