FreePascal and JSON


by LuriDarmawan in more 1 years ago 14129
JSON merupakan salah satu standar dalam proses pertukaran data antar aplikasi. Dan pada dasarnya sungguh sangat mudah mengolah data json ini di bahasa pemrograman Pascal, terlebih sudah banyak yang menyediakan helper untuk mempermudah proses baca tulisnya.
Semua yang diperlukan sudah terakomodir di dalam freepascal tanpa perlu install pustaka tambahan lainnya. Tulisan ini mengilustrasikan proses membaca suatu data dari suatu API yang menghasilkan data berformat json. Dalam hal ini saya menggunakan data publik daftar event di Komunitas Pascal Indonesia. Jika ingin melihat data aslinya silakan coba akses langsung dari repository https://raw.githubusercontent.com/pascal-id/Public-Data/master/data/events.json.

Begin

Baiklah, langsung saja, kode sumber ini akan membaca data dari endpoint api di https://raw.githubusercontent.com/pascal-id/Public-Data/master/data/events.json
Dengan data seperti ini
Kita akan melakukan looping untuk membaca isi larik dari key yang bernama data dan cukup hanya menampilkan nama event, tanggal dan pematerinya dari setiap record data yang ada.
Dan kurang lebih hasil kode sumbernya akan seperti ini:
Pada dasarnya, untuk melakukan proses pengolahan data json, kita cukup menggunakan unit fpjson dan jsonparser. Sedangkan untuk pemanggilan api-nya cukup dengan unit fphttpclient, dengan catatan perlu memasukkan unit opensslsockets jika url menggunakan ssl. Jika dilihat dari kode sumbernya, GetJSON digunakan untuk mengkonversi data string menjadi objek data json. Dan kemudian membaca data array dari field data.
events := TJSONArray(rawDataAsJson.FindPath('data'));
Dari sini kemudian kita menggunakan TJSONEnum untuk membantu mengurai data lariknya agar mudah membaca masing-masing field-nya.
Akan bisa dilihat juga variasi cara membaca data dengan event.Strings atau event.FindPath('speaker[0].name').AsString. Silahkan disesuaikan penggunaannya.
Nahhh .... seperti yang terlihat, mudah khan cara membaca data JSON di FreePascal/Lazarus.
Kode sumber untuk tulisan ini bisa dilihat dari repositori https://github.com/luridarmawan/freepascal-json

End.

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com