Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   JSON Wert zufügen (https://www.delphipraxis.net/209988-json-wert-zufuegen.html)

geldis 15. Feb 2022 08:14

JSON Wert zufügen
 
Hallo allerseits.

Ich hatte schon mal so meine Schwierigkeiten mit JSON und da wurde mir ja prima geholfen.
Jetzt ein unerwartetes neues das hoffentlich letzte Problem . Im Netz und hier und da habe ich gesucht, aber als Kind der XML Welt nur unverständliches Zeug gefunden. Folgende JSON:

Code:
{
  "Version": "1",
  "ID": "Zeptor",
  "IncompatibleIds": ["Jokola"],
  "Dependent": null,
  "Lapforce": {
    "English": "much",
    "French": null,
    "German": "Viel",
    "Italian": null,
    "Japanese": null,
    "Korean": null,
    "Polish": null,
    "Russian": null,
    "Spanish": null,
    "Taiwanese": null
  },
  "Name": "Turandot",
  "Contact": "",
  "Image" : null
}
Ich muss zur Node "Lapforce" schlicht die Sprache Czech - also "Czech": null, - hinzufügen, einfügen, anpappen. Mehr nicht. Kann das jemand mit den Bordmitteln von Delphi 10.4 ausführen?

Ich brauche das nur diese eine Mal und dafür dann JSON studieren ........:(

geldis

Union 15. Feb 2022 08:46

AW: JSON Wert zufügen
 
Wenn das Objekt als TJSONValue vorliegt:
Delphi-Quellcode:
var LValue : TJSONValue;
LValue := TJSONObject.ParseJSONValue(<Der JSON String>);
TJSONObject(AValue.FindValue('Lapforce')).AddPair('Czech', TJSONNull.Create);

Uwe Raabe 15. Feb 2022 08:51

AW: JSON Wert zufügen
 
Zitat:

Zitat von geldis (Beitrag 1502209)
Ich brauche das nur diese eine Mal

Dieser Satz ist vermutlich für einen Großteil des schlechten Codes auf der Welt mitverantwortlich. :-D

geldis 15. Feb 2022 10:04

AW: JSON Wert zufügen
 
@Union

besten Dank, klappt prima. Jetzt weiß ich auch warum das Pair heißt.

Und natürlich bei meinem Glück kommt dann noch was:
Code:
{
"Version": "1",
"ID": "Zeptor",
"IncompatibleIds": ["Jokola"],
"Dependent": null,
"Lapforce": {
"English": "much",
"French": null,
"German": "Viel",
"Italian": null,
"Japanese": null,
"Korean": null,
"Polish": null,
"Russian": null,
"Spanish": null,
"Taiwanese": null
},
"Score": [
{
"English": "much",
"French": null,
"German": "Viel",
"Italian": null,
"Japanese": null,
"Korean": null,
"Polish": null,
"Russian": null,
"Spanish": null,
"Taiwanese": null
}
],
"Name": "Turandot",
"Contact": "",
"Image" : null
}

</Code>

Die Node Score ist mit eckigen Klammern versehen, vermutlich also sowas wie ein Array. Er fügt den "Czech" Wert dazu, NICht die eckige Klammer. Was jetzt wenn ich nochmal fragen darf.

geldis


@UweRaabe

Danke für die Hilfe.

Union 15. Feb 2022 10:23

AW: JSON Wert zufügen
 
Die TJSONValue Werte liegen in einem TJSONArray vor.

himitsu 15. Feb 2022 10:28

AW: JSON Wert zufügen
 
oder der rechte Teil (Value) vom Pair

geldis 15. Feb 2022 16:32

AW: JSON Wert zufügen
 
Nach absolviertem Broterwerb : Da bin ich wieder.

Also ein Array, sehr schön. Am Beispiel oben orientiert würde ich also ein TJSONArray deklarieren

Delphi-Quellcode:
Var
var LValue : TJSONValue;
KArray : TJSonArray;

....

LValue := TJSONObject.ParseJSONValue(<Der JSON String>);
KArray := TJsonArray(LValue.FindValue('Score');
Jetzt habe ich eine Array. Und dann bin ich mal wieder am Ende.

geldis

himitsu 15. Feb 2022 17:00

AW: JSON Wert zufügen
 
Du willst kein Array (viele Values), sondern ein Object (viele Pairs mit Name+Value) haben.

geldis 16. Feb 2022 07:12

AW: JSON Wert zufügen
 
Moin Moin.

Nützt mir jetzt auch nichts. Ich kriege den Bogen nicht raus. :roll:

geldis

Union 16. Feb 2022 08:20

AW: JSON Wert zufügen
 
Auf die einzelnen TJSONValue im TJSONArray greifst Du über die Get - Methode zu. Die erhaltenen Objekte verarbeitest Du analog mit AddPair.

Ich kann Dir nur empfehlen, dich in die Delphi JSON Frameworks einzuarbeiten. Falls Du künftig noch länger programmieren wirst, kommst Du nämlich um JSON (und u.U. BSON, Protocol Buffers etc.) nicht herum.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz