Seite 1 von 1

ExtractJSONStructure mit einem Array an JSON Objekten

Verfasst: 24.09.2017 17:04
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

Re: ExtractJSONStructure mit einem Array an JSON Objekten

Verfasst: 24.09.2017 19:22
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

Re: ExtractJSONStructure mit einem Array an JSON Objekten

Verfasst: 24.09.2017 20:13
von X360 Andy
Super, vielen Dank, ist damit gelöst ;) Einfacher Logikfehler ;)