Membaca dan Menulis JSON Mudah dengan C#.NET

Membaca dan Menulis JSON Mudah dengan C#.NET

JSON , alternatif ringan dari XML

JSON adalah singkatan dari JavaScript Object Notation yang merupakan sistem standarisasi terbuka ( umum ) berbasis teks. JSON dapat dibandingkan dengan XML sebagai standar umum dalam transaksi/pertukaran file atau informasi dengan beragam media dan bahasa pemrograman. Hal ini dapat terjadi karena JSON juga dapat mewakili berbagai struktur data umum seperti array dan object ( huruf O dari singkatan JSON berarti Object ) yang berarti JSON dapat dipakai untuk menyimpan deskripsi berbagai object, seperti orang, events, dan berbagai object lain ke dalam file atau string. Singkat kata, JSON memiliki fungsi yang sama dengan XML, kecuali cara penulisan dan kecepatan baca yang ditawarkan.

JSON seringkali dipergunakan dalam web  terutama karena JSON didukung secara native oleh JavaScript. Contoh dalam JavaScript:

myJSON = {"age" : 12,

"name" : "Danielle"}

Contoh di atas dapat di baca dengan mudah oleh JavaScript dengan JSON.parse() :

anObject = JSON.parse(myJSON);
anObject.age == 12 # True
anObject.name == "Danielle" # True
anObject.age == "12" # False

dari contoh dapat dilihat bahwa JSON dapat langsung melakukan parsing terhadap file JSON di atas. Untuk informasi lebih lengkap tentang JSON, anda dapat mengunjungi : http://www.json.org/

Coding

Beberapa waktu yang lalu penulis menemukan cara yang sangat singkat untuk melakukan pembacaan dan penulisan file JSON dengan mempergunakan JSON.NET library yang disediakan oleh James Newtonking di http://json.codeplex.com/ Anda juga dapat melihat API dan help library ini di http://james.newtonking.com/. Penulis akan membuat program sederhana yang dapat membaca semua masukan data dari data grid view dan kemudian menjadikannya sebagai object. Lalu menyimpannya dalam JSON dan membaca JSON tersebut kembali dan menjadikannya sebagai object kembali.

  1. Langkah pertama, download JSON Library di http://json.codeplex.com/JSON .NET webpageTampilan JSON .NET webpage
  2. Kemudian extract file yang baru Anda download. Tempatkan sesuai dengan keinginan Anda.
  3. Buat project baru di Microsoft Visual Studio atau equivalen. Pilih project Windows Forms Application ( lihat gambar ). Beri nama project sesuai keinginan Anda. Buat project baru pilih  File >New > Project . Lalu pilih Visual C# dan pada bagian template pilih Windows Forms Application.Buat project baru Pembuatan Project BaruPilih Visual C# dan pada bagian template pilih Windows Forms ApplicationPilih Visual C# dan pada bagian template pilih Windows Forms Application 
  4. Buat project kita mereferensi ke library yang baru Anda dibuat. Buka Solution Explorer di sebelah kanan layar, pilih project (node yang berisi nama project ini ).
    buka solution explorerTampilan Solution Explorer
  5. Kemudian klik kanan pada node pilih add reference. Akan muncul dialog, Pilih tab Browse, cari tempat di mana anda mengextract file tadi ( biasanya /Json45r5/bin/<versi>/Newtonsoft.Json.dll).  Untuk versi NET Framework yang Anda pakai, umumnya jadi satu dengan paket instalasi Visual Studio. Untuk versi 2010 dan 2012 beta pakai Net40, versi 2008 pakai Net35 dan seterusnya.pilih add referenceKlik Kanan pada Node Pilih Add Referencetampilan Add ReferenceTampilan Add Reference
  6. Selanjutnya pilih file Newtonsoft.Json.dll yang sesuai dengan platform yang Anda inginkan.pilih platformPilih Newtonsoft.Json.dll
  7. Setelah selesai pilih file Newtonsoft.Json.dll dan klik OK, Jika berhasil akan tampak entry baru di solution explorer seperti pada gambar :Tampilan baruMuncul Tampilan Baru pada Solution Explorer
  8. Ubah tampilan di windows form anda menjadi seperti pada gambar dengan mendrag 2 button pada windows form, datagridview, dan textbox dengan properti multiline di enable :ubah tampilan di windows formMengubah Tampilan di Windows Form
  9. Ubah bagian using directive menjadi :using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Newtonsoft.Json; // untuk memasukkan library dalam project using System.Windows.Forms;
  10. Buat Class Employee di bagian bawah di luar classForm1public class Employee { public string Name; public int Age; public Employee(string name, int age) { this.Name = name; this.Age = age; } }
  11. Lalu anda dapat menyalin kode berikut ke dalam file Form1.cs:// buat object Employee dari class Employee privateEmployee employee; // buat array dari class List<type> List<Employee> eList = newList<Employee>(); // file json akan berada di folder yang sama dengan file // exe ( debug folder ) conststring alamatFile = @”.\json.txt”;
  12. Berikut adalah rutin bagi event click button “Masukkan data” dengan perintah ini maka semua keterangan dalam bentuk object akan diubah menjadi JavaScript Object Notationdan masuk ke dalam fileprivatevoid button1_Click(object sender, EventArgs e) { // buat instance yang akan menyimpan hasil dalam List() List<Employee> listHasil = newList<Employee>(); // buat juga string yang akan dipergunakan untuk menyimpan text hasil // pembacaan file json string ans = “”; // jika file json yang di maksud tidak ada maka buat file json // jika sudah ada maka tinggal membacanya if (System.IO.File.Exists(alamatFile) == false) { System.IO.File.Create(alamatFile); } else { // baca yang lama dan masukkan hasil bacaan ke ans System.IO.StreamReader reader = new System.IO.StreamReader(alamatFile); ans = reader.ReadToEnd(); // ubah string dalam ans tadi menjadi object Employee dan // masukkan langsung ke dalam listHasil listHasil = JsonConvert.DeserializeObject<List<Employee>>(ans); // jika listHasil tidak ada isinya menunjukkan kalau file text // yang dimaksud tidak memiliki isi // jika demikian maka buat instance baru dari listHasil if (listHasil == null) listHasil = newList<Employee>(); // tutup reader reader.Close(); } // proses membaca semua data dalam datagridview // buat instance dari class Employee dan masukkan dalam list<> foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[0].Value != null) { employee = newEmployee( row.Cells[0].Value.ToString(), int.Parse(row.Cells[1].Value.ToString())); listHasil.Add(employee); } } // selesai dibaca maka ubah eList ke dalam string dengan // serializeObject() // dan tuliskan semua teks tersebut dalam file ans = JsonConvert.SerializeObject(listHasil, Formatting.Indented); System.IO.File.WriteAllText(alamatFile, ans); }
  13. Yang menjadi perhatian dalam potongan kode di atas adalah kemampuan library dalam mengubah semua string dari hasil pembacaan JSON file menjadi object yang kemudian di proses lebih lanjut untuk menjadi instance bagi List<Employee>hanya dengan satu baris perintah :listHasil = JsonConvert.DeserializeObject<List<Employee>>(ans);dan kemudian dapat mengubah object dalam ListHasil menjadi JSON string juga dengan panjang satu baris dengan method SerializeObject :ans = JsonConvert.SerializeObject(listHasil, Formatting.Indented);Sementara bagi rutin bagi tombol yang akan dipergunakan untuk membaca file tersebut merupakan pengulangan dari rutin di atas dengan sedikit modifikasi. Pada Intinya sama dengan proses pembacaan data pada file JSON di atas. Anda dapat melihat source lengkapnya di link yang penulis sediakan.
Baca Juga :  Cara Membuat Web HTML CSS Keren by Olive Zamzam

Kesimpulan

JSON telah lama dipergunakan dalam dunia web. Tetapi selain itu, JSON dapat juga dipergunakan sebagai pengganti dari XML sebagai format penulisan data dalam file dengan beragam variasi penulisan yang anda dapat tentukan sendiri. Kelebihan JSON terletak pada kecepatan dan kemudahan penggunaanya. String dari JSON sendiri jauh lebih mudah di baca daripada XML. Selain itu proses penulisan dan pemanggilan data dari JSON dalam platform NET dengan hadirnya library JSON for NET.