AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

JSON valuePair entfernen

Ein Thema von Kostas · begonnen am 6. Sep 2021 · letzter Beitrag vom 10. Sep 2021
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

JSON valuePair entfernen

  Alt 6. Sep 2021, 17:10
Wie kann man bitte aus dem JSON "vatRate" entfernen?

Code:
{
  "price": {
    "dealerPriceGross": "535.50",
    "vatRate": "1.23",
    "currency": "EUR"
  }
}

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aJSON: TJSonValue;
    aJSONStr:String;
begin
  aJSONStr := '{"price": { "dealerPriceGross": "535.50", "vatRate": "1.23", "currency": "EUR" }}';

  aJSON := TJSONObject.ParseJSONValue(aJSONStr);


end;
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#2

AW: JSON valuePair entfernen

  Alt 6. Sep 2021, 17:27
https://docwiki.embarcadero.com/Libr...ect.RemovePair?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#3

AW: JSON valuePair entfernen

  Alt 6. Sep 2021, 17:28
Delphi-Quellcode:
var
  aJSON: TJSONValue;
  aJSONObj: TJSONObject;
  aJSONStr: string;
begin
  aJSONStr := '{"price": { "dealerPriceGross": "535.50", "vatRate": "1.23", "currency": "EUR" }}';
  aJSON := TJSONObject.ParseJSONValue(aJSONStr);
  aJSONObj := aJSON.GetValue<TJSONObject>('price');
  aJSONObj.RemovePair('vatRate');
  aJSONStr := aJSON.ToJSON;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: JSON valuePair entfernen

  Alt 6. Sep 2021, 20:41
ach, über TJSONObject. Das habe ich übersehen.

Besten Dank Uwe.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: JSON valuePair entfernen

  Alt 9. Sep 2021, 16:32
Ist es auch möglich das Pair über den path zu adressen um es zu löschen?

Alle Elemente die keinen Wert haben müssen entfernt werden.
Über den Path lässt sich das Pair leider nicht löschen.
In diesem code Beispiel könnte ich schon das Element Price herausziehen und dessen leere Elemente einzelne Element, so wie es der Uwe vorgeschlagen hat.
Danach müsste ich ein neues JSON bauen und alle Elemente einzeln einfügen. Das würde schon gehen.




Code:
{
  "price": {
    "dealerPriceGross": "2890.00",
    "consumerPriceGross": "2890.00",
    "dealerPriceNet": "",
    "consumerPriceNet": "",
    "vatRate": "",
    "type": "FIXED",
    "currency": "EUR"
  },
  "internalNumber": "R033-7781",
  "loadCapacity": 890
}



Delphi-Quellcode:
procedure RemoveItems(var aJSON: TJSONObject);
begin
  aJSON.RemovePair('price.dealerPriceNet'); //über den Path das Pair löschen. So geht es nicht.
end;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#6

AW: JSON valuePair entfernen

  Alt 9. Sep 2021, 16:45
Danach müsste ich ein neues JSON bauen und alle Elemente einzeln einfügen.
Wieso müsstest du das tun? In meinem Beispiel erzeugt der letzte Befehl doch schon das bereinigte JSON. Geht das bei dir nicht?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: JSON valuePair entfernen

  Alt 10. Sep 2021, 09:10
Sorry Uwe,

natürlich hast du recht. Es funktioniert einwandfrei.

Irritiert hat mich dass nach dem RemovePair das aJSONObj nicht zurückgeschrieben wird in aJSON.
Doch das braucht es nicht da es darauf referenziert.
Delphi-Quellcode:

aJSONObj.RemovePair('vatRate');
  aJSONStr := aJSON.ToJSON;
Tausend Dank und noch einen schönen Tag.
Gruß Kostas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.
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