Saat mengerjakan suatu proyek, jika Anda ingin mengeluarkan perintah ke kontrol OCX, Anda perlu mendapatkan objek di Java di JS, dan kemudian mengeja ke dalam format dan mengeluarkannya. . . Lebih sederhana ketika suatu objek adalah satu, tetapi sedikit merepotkan jika itu adalah array.
Pada awalnya saya pikir ada cara sederhana untuk secara langsung mengonversi konten, tetapi kemudian saya menemukan bahwa itu tidak mungkin. Internet mengatakan bahwa JS dan Java tidak memiliki hal -hal yang dijembatani, jadi:
Solusi saya adalah: Di lapisan aksi, ubah array objek Java menjadi string JSON, dan di JS, ubah JSON menjadi objek array.
1. Konversi array objek java menjadi string JSON:
Dua kelas akan digunakan:
net.sf.json.jsonobjectnet.sf.json.jsonarray // belah setiap objek kendaraan menjadi objek dalam format JSON, dan digunakan untuk mengeluarkan jsonObject json = jsonobject.fromObject (v); // V adalah objek jsonarray.add (json); //System.out.println (jsonarray.tostring ()); // Gunakan untuk SendCommandList = jsonarray.toString ();
Masukkan ke dalam loop.
2.JS mengubahnya menjadi array objek:
// Catatan: Apa yang Anda dapatkan saat ini adalah string JSON. // Catatan: EscapeJavAscript = "false" Escape = "false", jika tidak kutipan dalam string JSON yang dilewati akan diuraikan menjadi "var szjsonstr = '<s: properti EscapeJavaScript =" false "Escape =" false "value =" sendCommandlist " />';
akhirnya:
// Konversi string JSON menjadi array objek var addvehiclearray = eval (szjsonstr);
Saat menggunakannya, cukup gunakan AddVehiclearray [i] .vehicletype; Tidak apa -apa. . . . . .
Ekstensi:
Penggunaan jsonObject dan jsonarray
1. Pengantar Paket JAR
Untuk membuat program dijalankan, paket JSON-LIB harus diperkenalkan, yang juga tergantung pada paket toples berikut:
commons-lang.jar
commons-beanutils.jar
commons-collections.jar
Commons-logging.jar
Ezmorph.jar
json-lib-2.2.2-jdk15.jar
2.JSonObject Object Usage
Paket JSON-LIB adalah paket yang mengubah kacang, koleksi, peta, array Java dan XML dan JSON. Dalam hal ini, kami akan menggunakan kelas JSONObject untuk membuat objek JSONObject, dan kemudian kami mencetak nilai -nilai objek tersebut. Untuk menggunakan objek JSONObject, kami ingin memperkenalkan paket "net.sf.json". Untuk menambahkan elemen ke objek, kita perlu menggunakan metode put ().
2.1. Contoh 1
Paket jsontest; impor net.sf.json.jsonarray; impor net.sf.json.jsonobject; kelas publik jsonobjectsample {// buat objek jsonobject private static jsonObject createJsonObject () {jsonObject jsonObject = new jsonObject (); jsonobject.put ("nama pengguna", "huangwuyi"); jsonObject.put ("sex", "Male"); jsonobject.put ("qq", "413425430"); jsonobject.put ("min.score", integer baru (99)); jsonobject.put ("julukan", "pusat mimpi"); return jsonObject; } public static void main (string [] args) {jsonObject jsonObject = jsonobjectsample.createJSonObject (); // tunggu metode, hubungi langsung melalui nama kelas + metode // output jsonObject objek System.out.println ("jsonObject:" + jsonobject); // Menafsirkan jenis objek output boolean isArray = jsonobject.isArray (); boolean isEmpty = jsonobject.isempty (); boolean isnullObject = jsonobject.isnullObject (); System.out.println ("Apakah itu array:" + isArray + ", isNullObject:" + isNullObject); // Tambahkan atribut dan tambahkan elemen setelah JSONObject. jsonobject.element ("alamat", "Kota Xiamen, Provinsi Fujian"); System.out.println ("Objek setelah menambahkan atribut:" + jsonObject); // kembalikan objek jsonarray jsonarray jsonarray = new jsonarray (); jsonarray.add (0, "Ini adalah nilai jsonarray"); jsonarray.add (1, "nilai jsonarray lain"); jsonobject.element ("jsonarray", jsonarray); // tinggal jsonarray di belakang jsonobject jsonarray array = jsonobject.getjsonarray ("jsonarray"); System.out.println (jsonObject); System.out.println ("Kembalikan objek JSonArray:" + array); // Add the value after JSONArray// {"username":"huangwuyi","sex":"Male","QQ":"413425430","Min.score":99,"nickname":"Dream center","address":"Xiamen City, Fujian Province","jsonArray":["this is a jsonArray value","another jsonArray nilai "]} System.out.println (" result = " + jsonObject); // return a string sesuai dengan string kunci username = jsonobject.getString ("username"); System.out.println ("username ==>" + nama pengguna); // Konversi karakter ke string jsonObject temp = jsonobject.toString (); Objek jsonObject = jsonobject.fromObject (temp); // Setelah konversi, nilai pengembalian berdasarkan sistem kunci.out.println ("qq =" + object.get ("qq")); }}Hasil output
jsonObject: {"username": "huangwuyi", "sex": "laki -laki", "qq": "413425430", "min.score": 99, "julukan": "Dream Center"} adalah array: false, apakah itu kosong: false, isnullobject: falseAddress objek setelah falgues afterdress: falseAddress afterdress: falgibute: falseAddress objek: faldrress afterdress: faldrress afterdress: falgibute: false, isnullobshy: falseaddress objek after, falgibute: falseAddress afters {"nama pengguna": "huangwuyi", "sex": "laki -laki", "qq": "413425430", "min.score": 99, "julukan": "pusat impian", "alamat": "xiamen city, fujian Provinsi "} {" Nama Pengguna ":" Huangwuyi "," Sex ":" Pria "," Qq ":" 413425430 "," Min.Score ": 99," nama panggilan ":" Dream Center "," ADVENT ":" Nilai Kota Lainnya "," ini, "Nilai Jonarray", "ini" Objek JSONArray: ["Ini adalah nilai jsonarray", "nilai jsonarray lain"] hasil = {"nama pengguna": "huangwuyi", "sex": "pria", "qq": "413425430", "Min.score": 99, "nama julukan": "Mimpi", "Pidato" " Provinsi "," jsonarray ": [" Ini adalah nilai jsonarray "," nilai jsonarray lain "]} nama pengguna ==> huangwuyiqq = 4134254302.2. Contoh 2.
Paket jsontest; impor net.sf.json.jsonarray; impor net.sf.json.jsonobject; kelas publik jsontest {public static void main (string args []) {jsonObject jsonobj0 = new jsonObject (); JsonObject jsonobj = jsonobject () baru; JsonObject jsonobj2 = new jsonobject (); JsonObject jsonobj3 = new jsonobject (); Jsonarray jsonarray = jsonarray baru (); // buat jsonobj0 jsonobj0.put ("name0", "zhangsan"); jsonobj0.put ("sex1", "wanita"); System.out.println ("jsonobj0:"+jsonobj0); // buat jsonobj1 jsonobj.put ("name", "xuwei"); jsonobj.put ("seks", "pria"); System.out.println ("jsonobj:"+jsonobj); // Buat jsonobj2, berisi dua entri, isi entri adalah jsonobj0, jsonobj1 jsonobj2.put ("item0", jsonobj0); jsonobj2.put ("item1", jsonobj); System.out.println ("jsonobj2:"+jsonobj2); // Buat jsonobj3, hanya ada satu entri, isinya adalah jsonobj2 jsonobj3.element ("j3", jsonobj2); System.out.println ("jsonobj3:"+jsonobj3); // Tambahkan objek jsonObject ke jsonArray. Menemukan bahwa perbedaan antara JSONArray dan JsonObject adalah bahwa JsonArray memiliki lebih banyak tanda kurung daripada jsonObject [] jsonarray.add (jsonobj); System.out.println ("JsonArray:"+JsonArray); JsonObject jsonobj4 = new jsonobject (); jsonobj4.element ("cuaca", jsonarray); System.out.println ("jsonobj4:"+jsonobj4); }}Hasil output:
jsonobj0: {"name0": "zhangsan", "sex1": "betina"} jsonobj: {"name": "xuwei", "sex": "pria"} jsonobj2: { "item0": {"name0": "zhangsan", "sex1": "female"}, "item1": {"name": "xuwei", "sex": "Male"}} jsonobj3: {"j3": {"item0": {"name0": "zhangsan", "sex1": "female"}, "item1": {"name": "xuwei", "sex": "Male"}}} j sonarray: [{"name": "xuwei", "sex": "Male"}] jsonobj4: {"cuaca": [{"name": "xuwei", "sex": "Male"}]}Metode di atas untuk menerima dan mengonversi objek array di Java adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.