Cara Mengolah Data JSON di Delphi

Pada delphi terbaru untuk membaca dan menulis data JSON sudah disertakan dalam unit yang berawalan System.JSON.  Sedangkan untuk versi Delphi 7 kebawah anda bisa menggunakan lkjson.

Contoh data:

  1. ["anas hidayat","jl sukamesum"]
  2. {"nama":"anas hidayat","alamat":"jl suka mesum"}
  3. [{"nama":"anas hidayat","alamat":"jl sukamesum"},{"nama":"joni iskandar","alamat":"jl maju mundur"}]

Writing JSON

Pada Delphi Baru

Tambahkan unit System.JSON, System.JSON.Types,System.JSON.Writers ke uses delphi anda.  Lalu ketik script berikut:

Untuk JSON Array sederhana misal pada contoh data 1.

procedure Tform1.WriteJson;
var
writer:TStringWriter;
jswriter:TJsonTextWriter;
begin
writer:=TStringWriter.Create;
jswriter:=TJsonTextWriter.Create(writer);
jswriter.WriteStartArray;
jswriter.WriteValue('anas');
jswriter.WriteValue('jl sukamesum');
jswriter.WriteEndArray;
Memo1.lines.add(writer.toString);
end;

Untuk JSON Object sederhana untuk contoh data nomor 2:

procedure Tform1.WriteJson;
var
writer:TStringWriter;
jswriter:TJsonTextWriter;
begin
writer:=TStringWriter.Create;
jswriter:=TJsonTextWriter.Create(writer);
jswriter.WriteStartObject;
jswriter.WritePropertyName('nama');
jswriter.WriteValue('anas hidayat');
jswriter.WritePropertyName('alamat');
jswriter.WriteValue('jl sukamesum');
jswriter.WriteEndObject;
Memo1.lines.add(writer.toString);
end;

Untuk mengambil data dari database misal dengan format seperti contoh data nomor 3:

procedure Tform1.WriteJson;
var
writer:TStringWriter;
jswriter:TJsonTextWriter;
begin
writer:=TStringWriter.Create;
jswriter:=TJsonTextWriter.Create(writer);
dataset.First;
jswriter.WriteStartArray;
  while not dataset.eof do
  begin
   jswriter.WriteStartObject;
   jswriter.Writepropertyname('nama');
   jswriter.WriteValue(dataset.Fieldbyname('nama').AsString);//jangan menggunakan FieldValues karena ada kemungkinan error jika datanya null
   jswriter.Writepropertyname('alamat');
   jswriter.WriteValue(dataset.fieldbyname('alamat').AsString);
   jswriter.WriteEndObject;
  end;
jswriter.WriteEndArray;
Memo1.lines.add(writer.toString);
end;

Dengan lkjson untuk Delphi lama

Tambahkan dahulu unit Ulkjson di uses delphi anda.

Untuk JSON Array sederhana misal pada contoh data 1.


procedure Tform1.WriteJson;
var:
jarray:TlkJSONlist;
begin
jarray:=TlkJSONlist.Create;
jarray.Add('anas hidayat');
jarray.Add('jl sukamesum');
Memo1.Lines.Add(TlkJSON.GenerateText(jarray));
end;

Untuk JSON Object sederhana seperti pada contoh nomor 2.


procedure Tform1.WriteJson;
var
jobject:TlkJSONobject;
begin
jobject:=TlkJSONobject.Create;
jobject.Add('nama','anas hidayat');
jobject.Add('alamat','jl sukamesum');
Memo1.Lines.Add(TlkJSON.GenerateText(jobject));
end;

Untuk mengambil data dari database misal dengan format seperti contoh data nomor 3:


procedure Tform1.WriteJson;
jobject:TlkJSONobject;
jarray:TlkJSONlist;
begin
jarray:=TlkJSONlist.Create;
Dataset.First;

   while not dataset.Eof do
   begin
    jobject:=TlkJSONobject.create;
    jobject.Add('nama',Dataset.Fieldbyname('nama').asString);
    jobject.Add('alamat',Dataset.Fieldbyname('alamat').asString);
    jarray.Add(jobject);
   end;
Memo1.Lines.Add(TlkJSON.GenerateText(jarray));
end;

Reading atau Parsing JSON

Pada Delphi Baru

Untuk contoh data array seperti contoh nomor 1:


procedure Tform1.ReadJson(jsonstr:string);
var
jDataArray:TJSONArray;
js:TJSONString;
i:integer;
begin
jDataArray:=TJSONObject.ParseJSONValue(jsonstr) as TJSONArray;
for i:=0 to jDataArray.Count-1 do
begin
js:=jDataArray.Items[i] as TJSONString;
Memo1.Lines.Add(js.Value);
end;
end;

Untuk data object seperti contoh nomor 2:


procedure Tform1.ReadJson(jsonstr:string);
var
jDataObject:TJSONObject;
begin
jDataObject := TJSONObject.ParseJSONValue(jsonstr) as TJSONObject;
Memo1.Lines.Add(jDataObject.GetValue('nama').Value);
Memo1.Lines.Add(jDataObject.GetValue('alamat').Value);
end;

Parsing JSON seperti contoh nomor 3:


procedure Tform1.ReadJson(jsonstr:string);
var
jDataArray:TJSONArray;
jDataObject:TJSONObject;
i:integer;
begin
jDataArray:=TJSONObject.ParseJSONValue(jsonstr) as TJSONArray;
for i:=0 to jDataArray.Count-1 do
begin
jDataObject:=jDataArray.Items[i] as TJSONObject;
Memo1.Lines.Add(jDataObject.GetValue('nama').Value);
Memo1.Lines.Add(jDataObject.GetValue('alamat').Value);
end;
end;

Dengan lkjson untuk Delphi lama

Untuk data array seperti contoh nomor 1:


procedure Tform1.ReadJson(jsonstr:string);
var
jarray:TlkJSONlist;
i:integer;
begin
jarray:=TlkJSONlist(TlkJSON.ParseText(jsonstr));
for i:=0 to jarray.Count-1 do
begin
Memo1.Lines.Add(jarray.getString(i));
end; 
end;

Untuk data object seperti contoh nomor 2:


procedure Tform1.ReadJson(jsonstr:string);
var
jobject:TlkJSONObject;
i:integer;
begin
jobject:=TlkJSONObject(TlkJSON.ParseText(jsonstr));
Memo1.Lines.add(jobject.getString('nama'));
Memo1.Lines.add(jobject.getString('alamat'));
end;

Untuk data array seperti contoh nomor 3:


procedure Tform1.ReadJson(jsonstr:string);
var
jarray:TlkJSONlist;
jobject:TlkJSONObject;
i:integer;
begin
jarray:=TlkJSONlist(TlkJSON.ParseText(jsonstr));
for i:=0 to jarray.Count-1 do
begin
 jobject:=TlkJSONObject(jarray.field[i]);
Memo1.Lines.add(jobject.getString('nama'));
Memo1.Lines.add(jobject.getString('alamat'));
end; 
end;

anasmbahdien

Seorang programmer yang menguasai bahasa pemograman Delphi, VB.NET, PHP dan Android. Untuk hasil karya kunjungi mogotekno.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *