1. JSON-LIB adalah perpustakaan kelas Java yang menyediakan fungsi mengonversi objek Java, termasuk kacang, peta, koleksi, array Java dan XML, menjadi JSON, atau konversi terbalik.
2. JSON-LIB HOMEPAGE: http://json-lib.sourceForge.net/
3. Lingkungan Eksekusi
Dukungan perpustakaan berikut diperlukan
Commons-lang 2.5
Commons-Beanutils 1.8.0
Commons-Collections 3.2.1
Logging Commons 1.1.1
Ezmorph 1.0.6
4. Contoh fungsional
Berikut adalah contoh kode yang diberikan oleh contoh Junit-kasus
Salinan kode adalah sebagai berikut:
paket com.mai.json;
impor statis org.junit.assert.assertequals;
impor java.util.arraylist;
impor java.util.date;
impor java.util.hashmap;
impor java.util.iterator;
impor java.util.list;
impor java.util.map;
impor net.sf.ezmorph.morpher;
impor net.sf.ezmorph.morpherregistry;
impor net.sf.ezmorph.bean.beanmorpher;
impor net.sf.json.jsonarray;
impor net.sf.json.jsonobject;
impor net.sf.json.util.jsonutils;
impor org.apache.commons.beanutils.propertyutils;
impor org.junit.test;
kelas publik jsonlibtest {
/*
* Jenis normal, daftar, koleksi, dll. Semuanya diuraikan menggunakan jsonarray
*
* Peta dan tipe kustom diuraikan menggunakan jsonObject
* Peta dapat dipahami sebagai objek, dan pasangan kunci/nilai di dalamnya dapat dipahami sebagai nilai atribut/atribut objek
* Yaitu {key1: value1, key2, value2 ...}
*
* 1. JsonObject adalah nama: Koleksi Nilai.
* Melalui getjsonObject (key), Anda bisa mendapatkan JSONObject, -> Konversinya menjadi peta,
* Melalui getjsonarray (kunci) Anda bisa mendapatkan jsonarray,
*
*
*/
// umumnya mengonversi array ke json
@Tes
public void testarraytoJson () {
boolean [] boolarray = boolean baru [] {true, false, true};
Jsonarray jsonarray = jsonarray.fromObject (boolarRay);
System.out.println (jsonarray);
// mencetak [benar, salah, benar]
}
// Konversi objek koleksi ke JSON
@Tes
public void testlisttoJson () {
Daftar Daftar = ArrayList baru ();
list.add ("pertama");
list.add ("kedua");
Jsonarray jsonarray = jsonarray.fromObject (daftar);
System.out.println (jsonarray);
// mencetak ["pertama", "kedua"]
}
// Konversi String JSON ke JSON, tergantung pada situasinya, gunakan jsonarray atau jsonObject
@Tes
public void testjsonstroJson () {
Jsonarray jsonarray = jsonarray.fromObject ("['json', 'is', 'easy']");
System.out.println (jsonarray);
// mencetak ["json", "is", "Easy"]
}
// Konversi peta ke JSON, menggunakan JSONObject
@Tes
public void testmaptojson () {
Peta peta = hashmap baru ();
peta.put ("name", "json");
peta.put ("bool", boolean.true);
peta.put ("int", integer baru (1));
peta.put ("arr", string baru [] {"a", "b"});
peta.put ("func", "function (i) {return this.arr [i];}");
JsonObject jsonObject = jsonobject.fromObject (peta);
System.out.println (jsonObject);
}
// Kacang tipe senyawa ke dalam json
@Tes
public void testBeadToJson () {
Mybean bean = mybean baru ();
bean.setid ("001");
bean.setname ("kartu bank");
bean.setDate (tanggal baru ());
Daftar cardnum = arraylist baru ();
cardnum.add ("Bank Pertanian");
cardnum.add ("icbc");
cardnum.add ("ccb");
cardnum.add (orang baru ("tes"));
bean.setcardnum (cardnum);
JsonObject jsonObject = jsonobject.fromObject (bean);
System.out.println (jsonObject);
}
// Konversi JSON jenis normal menjadi objek
@Tes
public void testJsontoObject () melempar Exception {
String json = "{name =/" json/", bool: true, int: 1, double: 2.2, function: function (a) {return a;}, array: [1,2]}";
JsonObject jsonObject = jsonobject.fromObject (json);
System.out.println (jsonObject);
Objek bean = jsonobject.tobean (jsonObject);
assertequals (jsonobject.get ("name"), propertyutils.getproperty (bean, "name"));
assertequals (jsonobject.get ("bool"), propertyutils.getproperty (bean, "bool")));
assertequals (jsonobject.get ("int"), propertyutils.getproperty (bean, "int"));
assertequals (jsonobject.get ("double"), propertyutils.getproperty (bean, "double")));
assertequals (jsonobject.get ("func"), propertyutils.getproperty (bean, "func")));
System.out.println (Propertyutils.getproperty (bean, "name"));
System.out.println (Propertyutils.getproperty (bean, "bool"));
System.out.println (Propertyutils.getproperty (bean, "int"));
System.out.println (Propertyutils.getProperty (bean, "double"));
System.out.println (Propertyutils.getproperty (bean, "func"));
System.out.println (Propertyutils.getproperty (bean, "array"));
Daftar arraylist = (daftar) jsonarray.tocollection (jsonobject.getjsonArray ("array"));
untuk (objek objek: arraylist) {
System.out.println (objek);
}
}
// Parse json ke objek tipe gabungan, termasuk daftar
@Tes
public void testJsontobeanHavalist () {
String json = "{list: [{name: 'test1'}, {name: 'test2'}], peta: {test1: {name: 'test1'}, test2: {name: 'test2'}}}" ;
// string json = "{list: [{name: 'test1'}, {name: 'test2'}]}";
Peta classmap = hashmap baru ();
classmap.put ("Daftar", person.class);
Mybeanwithperson diybean = (mybeanwithperson) jsonobject.tobean (jsonobject.fromObject (json), mybeanwithperson.class, classmap);
System.out.println (Diybean);
Daftar daftar = diybean.getList ();
untuk (objek o: daftar) {
if (o instance dari orang) {
Orang p = (orang) o;
System.out.println (p.getName ());
}
}
}
// Parse json ke objek tipe gabungan, termasuk peta
@Tes
public void testjsontobeanHavamap () {
// Pikirkan peta sebagai objek
String json = "{list: [{name: 'test1'}, {name: 'test2'}], peta: {testone: {name: 'test1'}, testtwo: {name: 'test2'}}}" ;
Peta classmap = hashmap baru ();
classmap.put ("Daftar", person.class);
classmap.put ("peta", peta.class);
// Gunakan petunjuk, langsung parse json ke objek khusus yang ditentukan, di mana daftar sepenuhnya diuraikan, peta tidak sepenuhnya diuraikan
Mybeanwithperson diybean = (mybeanwithperson) jsonobject.tobean (jsonobject.fromObject (json), mybeanwithperson.class, classmap);
System.out.println (Diybean);
System.out.println ("Lakukan rilis daftar");
Daftar <Son> Daftar = diybean.getList ();
untuk (orang o: daftar) {
Orang p = (orang) o;
System.out.println (p.getName ());
}
System.out.println ("Lakukan rilis peta");
// Daftarkan transformator di registri terlebih dahulu, dan Anda perlu menggunakan kelas dalam paket ezmorph
Morpherregistry morpherregistry = jsonutils.getmorpherregistry ();
Morpher dynamorpher = beanmorpher baru (person.class, morpherregistry);
morpherregistry.registermorpher (Dynamorpher);
Peta peta = diybean.getMap ();
/*Peta di sini tidak memiliki petunjuk jenis, jadi sesuai dengan default, objek yang disimpan adalah tipe net.sf.ezmorph.bean.morphdynabean*/
System.out.println (peta);
/*Keluaran:
{testone=net.sf.ezmorph.bean.morphdynabean@f73c1 [
{name = test1}
], testtwo=net.sf.ezmorph.bean.morphdynabean@186c6b2 [
{name = test2}
]}
*/
Daftar <Son> output = ArrayList baru ();
untuk (iterator i = map.values (). iterator (); i.hasnext ();) {
// Gunakan Panitera untuk melakukan transformasi objek pada Dynabean yang ditentukan
output.add ((orang) morpherregistry.morph (person.class, i.next ()));
}
untuk (orang p: output) {
System.out.println (p.getName ());
/*Keluaran:
test1
test2
*/
}
}
}
5. Berikut ini menyediakan sumber daya yang diperlukan untuk contoh di atas, termasuk paket dan kode toples
/File/MailingFeng/JSON-LIB/JSON-LIB Penggunaan Kasus Membutuhkan Paket JAR dan kelas Java.RAR