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:
1
2
3
| myJSON = {"age" : 12,"name" : "Danielle"} |
1
2
3
4
| anObject = JSON.parse(myJSON);anObject.age == 12 # TrueanObject.name == "Danielle" # TrueanObject.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.- Langkah pertama, download JSON Library di http://json.codeplex.com/
Tampilan JSON .NET webpage
- Kemudian extract file yang baru Anda download. Tempatkan sesuai dengan keinginan Anda.
- 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.
Pembuatan Project BaruPilih Visual C# dan pada bagian template pilih Windows Forms Application
- 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 ).
Tampilan Solution Explorer - 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.
Klik Kanan pada Node Pilih Add ReferenceTampilan Add Reference
- Selanjutnya pilih file Newtonsoft.Json.dll yang sesuai dengan platform yang Anda inginkan.
Pilih Newtonsoft.Json.dll
- Setelah selesai pilih file Newtonsoft.Json.dll dan klik OK, Jika
berhasil akan tampak entry baru di solution explorer seperti pada gambar
:
Muncul Tampilan Baru pada Solution Explorer
- 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 :
Mengubah Tampilan di Windows Form
- Ubah bagian using directive menjadi :
123456789
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingNewtonsoft.Json;//untuk memasukkan library dalam projectusingSystem.Windows.Forms; - Buat Class Employee di bagian bawah di luar classForm1
12345678910
publicclassEmployee{publicstringName;public int Age;public Employee(stringname,int age){this.Name=name;this.Age=age;}} - Lalu anda dapat menyalin kode berikut ke dalam file Form1.cs:
1234567
//buat object Employee dariclassEmployeeprivateEmployee employee;//buat array dariclassList<type>List<Employee>eList=newList<Employee>();//filejson akan berada difolderyang sama denganfile//exe(debugfolder)conststring alamatFile=@".\json.txt"; - 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 file
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
privatevoid button1_Click(object sender,EventArgs e){//buat instance yang akan menyimpan hasil dalam List()List<Employee>listHasil=newList<Employee>();//buat jugastringyang akan dipergunakan untuk menyimpantexthasil//pembacaanfilejsonstringans="";//jikafilejson yang di maksud tidak ada maka buatfilejson//jika sudah ada maka tinggal membacanyaif(System.IO.File.Exists(alamatFile)==false){System.IO.File.Create(alamatFile);}else{//baca yang lama dan masukkan hasil bacaan ke ansSystem.IO.StreamReader reader=newSystem.IO.StreamReader(alamatFile);ans=reader.ReadToEnd();//ubahstringdalam ans tadi menjadi object Employee dan//masukkan langsung ke dalam listHasillistHasil=JsonConvert.DeserializeObject<List<Employee>>(ans);//jika listHasil tidak ada isinya menunjukkan kalaufiletext//yang dimaksud tidak memiliki isi//jika demikian maka buat instance baru dari listHasilif(listHasil==null)listHasil=newList<Employee>();//tutup readerreader.Close();}//proses membaca semuadatadalam datagridview//buat instance dariclassEmployee dan masukkan dalamlist<>foreach(DataGridViewRow rowindataGridView1.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 dalamstringdengan//serializeObject()//dan tuliskan semua teks tersebut dalamfileans=JsonConvert.SerializeObject(listHasil,Formatting.Indented);System.IO.File.WriteAllText(alamatFile,ans);} - 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 :
dan kemudian dapat mengubah object dalam ListHasil menjadi JSON string juga dengan panjang satu baris dengan method SerializeObject :1
listHasil=JsonConvert.DeserializeObject<List<Employee>>(ans);
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.1ans=JsonConvert.SerializeObject(listHasil,Formatting.Indented);

0 komentar:
Posting Komentar