Delphi: JSON array
Versucht zu verstehen, JSON, in Delphi. Mit dem Modul "DBXJSON.pas". Wie es zu benutzen, um so ein array:
Array:[
{"1":1_1,"1_2_1":1_2_2},
...,
]
Tun:
JSONObject:=TJSONObject.Create;
JSONArray:=TJSONArray.Create();
...
JSONArray.AddElement(TJSONObject.Create(TJSONPair.Create('1','1_1')));
JSONArray.AddElement(TJSONObject.Create(TJSONPair.Create('1_2_1','1_2_2')));
JSONObject.AddPair('Array',JSONArray);
aber dieses:
{
"Array":[
{"1":"1_1"},{"1_2_1":"1_2_2"}
]
}
Bitte Hilfe!!!
Danke!
- Es gibt offensichtliche Vorteile der Verwendung von was auch immer geliefert wird, die mit Delphi, aber wenn du gehst zu tun eine Menge von JSON-Zeug, Sie sollten wirklich einen Blick auf SuperObject. Es ist genial auf so viele Arten. code.google.com/p/superobject/source/checkout
- Sie behaupten zu wollen, einen Wert in das Objekt der
1_1
. Das ist kein Gültiger Javascript-Wert. Numerische Literale sind nicht enthalten darf, unterstreicht. (Sind Sie erlaubt, in Java und Perl, aber nicht Javascript). Bitte klären Sie, was Sie wirklich wollte, weil Ihre Frage scheint sich gerade, was Sie wollen, ist nicht wirklich JSON überhaupt, so sollten Sie nicht über eine JSON-Bibliothek.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Code, die Sie oben gepostet ist, ist nicht korrekt. Sie haben erstellt ein JSON-Array und versuchen, add-pair-Elemente, um das array. Aber, anstatt Paare zu array hinzufügen
JSON Objects
auf dieses array, und diese Objekte enthalten Ihre Paare.hier ist ein Beispielcode um das problem zu lösen:
- und Ausgang ist
Gleiche Antwort wie @teran:
ändern:
zu:
Cheers.
AddElement
Methode erwartet einTJSONValue
, aberTJSONPair
ist keine Unterklasse vonTJSONValue
, also dein vorgeschlagener code gar nicht kompilieren. Die gewünschte Ausgabe ist das array einen Wert enthalten. Sie versuchen, add-Paaren direkt in das array, aber Paare sind nicht Werte. Ja, wie ist Ihre Antwort die gleiche wie Teran ist?