Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Json Okuma (üst ve alt kırılımlı)
#1
Selâmlar, 

unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.StrUtils, System.JSON, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.ComCtrls;

type
 TForm1 = class(TForm)
   Calistir: TButton;
   JsonSonucu: TMemo;
   procedure CalistirClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CalistirClick(Sender: TObject);
var
       I : Integer;
       JSonArabalar : TJsonArray;
       Araba, JsonFiyatlar : TJSonObject;
       ArabaFiyati : Double;
       ArabaMarkasi, ArabaModeli, ArabaYili, ArabaParaBirimi : String;

       Json:String;
begin
       Json:='';
       Json:=Json+'[';
        Json:=Json+'    {"Markalar":"Ferrari", "Modeller":"SF90 Stratade", "Yili":2020, "Fiyatlar":{"Fiyati":15000, "PS":"EUR"}},';
        Json:=Json+'    {"Markalar":"Ford", "Modeller":"viper", "Yili":2013, "Fiyatlar":{"Fiyati":24000, "PS":"EUR"}},';
        Json:=Json+'    {"Markalar":"Bmw", "Modeller":"Z4", "Yili":2008, "Fiyatlar":{"Fiyati":32000, "PS":"EUR"}},';
        Json:=Json+'    {"Markalar":"Mercedes", "Modeller":"SLK", "Yili":2001, "Fiyatlar":{"Fiyati":47000, "PS":"EUR"}},';
        Json:=Json+'    {"Markalar":"Visera", "Modeller":"2018", "Yili":2020, "Fiyatlar":{"Fiyati":61000, "PS":"TL"}},';
        Json:=Json+'    {"Markalar":"Sercedes", "Modeller":"MLK", "Yili":2005, "Fiyatlar":{"Fiyati":65000, "PS":"USD"}}';
        Json:=Json+']';

       JSonArabalar:=TJsonObject.ParseJsonValue(Json) as TJsonArray;

       If not Assigned(JSonArabalar) Then Exit;

       try
                 JsonSonucu.Clear;

                 For I:=0 to JSonArabalar.Count-1 Do
                 begin
                         try
                         {Object}Araba  :=  JSonArabalar.Get(I) as TJsonObject; //Object
                                         ArabaMarkasi :=  Araba.Get('Markalar').JsonValue.Value;
                                         ArabaModeli  :=  Araba.Get('Modeller').JsonValue.Value;
                                         ArabaYili    :=  Araba.Get('Yili').JsonValue.Value;

                                 {Object}JsonFiyatlar :=  Araba.Get('Fiyatlar').JsonValue as TJsonObject;
                                             ArabaFiyati     :=  (JsonFiyatlar.Get('Fiyati').JsonValue as TJsonNumber).AsDouble;
                                             ArabaParaBirimi :=   JsonFiyatlar.Get('PS').JsonValue.Value;

                                 JsonSonucu.Lines.Add('ArabaMarkasi : '+ArabaMarkasi);
                                 JsonSonucu.Lines.Add('ArabaModeli : '+ArabaModeli);
                                 JsonSonucu.Lines.Add('ArabaYili : '+ArabaYili);
                                 JsonSonucu.Lines.Add('ArabaFiyati : '+ArabaFiyati.ToString+' '+ArabaParaBirimi);
                                 JsonSonucu.Lines.Add('');
                                 JsonSonucu.Lines.Add('');
                         except
                                 On E:Exception Do
                                 JsonSonucu.Lines.Add('Hata : '+E.Message);
                         end;

                         Application.ProcessMessages;
                 end;
       finally
                 JSonArabalar.Free;
       end;
end;

end.

Acemiliğimden her ikisini bulamamıştım. Ya düz okuma vardı ya da hep alt alta okuma. Basit bir şeymiş. Başkaları uğraşmasın diye ekliyorum.

İyi günler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 10.4 arayüze kamera verisi aktarma ME®T 4 1.927 23-12-2022, Saat: 23:58
Son Yorum: ME®T
  Delphi için uzak işi biliyor musunuz? gbg 18 7.979 27-12-2021, Saat: 13:21
Son Yorum: Jakarta2
  Plaka okuma sistemi klavye 4 3.875 29-05-2021, Saat: 22:57
Son Yorum: engerex
  Delphi Lisans aktivasyonu tekrarı enigma 3 3.659 20-03-2021, Saat: 17:02
Son Yorum: mcuyan
  Projeyi okuma modunda açabilir miyiz? pro_imaj 3 2.843 02-11-2020, Saat: 23:38
Son Yorum: hayalyilmaz43



Konuyu Okuyanlar: 1 Ziyaretçi