Kata pengantar
JSON adalah singkatan dari notasi objek JavaScript, bentuk pertukaran data yang ringan, alternatif untuk XML, dan lebih kecil, lebih cepat dan lebih mudah diurai daripada XML. Karena JSON menggunakan sintaks JavaScript saat menggambarkan objek, itu adalah bahasa dan platform-independen, dan banyak parser JSON dan perpustakaan kelas telah dikembangkan selama bertahun-tahun.
JSON memiliki formulir berikut:
Suatu objek adalah kumpulan "'' pair '" yang tidak dipesan. Objek dimulai dengan "{" (braket terbuka) dan diakhiri dengan "}" (tutup braket). Setiap "nama" diikuti oleh ":" (usus besar); "pair 'name/value' dipisahkan oleh", "(koma).
Daftar nilai yang dipesan. Dalam sebagian besar bahasa, itu diimplementasikan sebagai array, vektor, daftar, urutan.
Ini adalah struktur data yang umum. Saat ini, sebagian besar bahasa pemrograman mendukung mereka dalam beberapa bentuk. Ini memungkinkan untuk bertukar data dalam format yang sama antara berbagai bahasa pemrograman.
Untuk mendapatkan data dari URL server lain, kami umumnya mengirimkan data JSON. Misalnya, Server B perlu mendapatkan informasi paging dari URL Server A.
Di sini saya telah mencoba tiga JSON pihak ketiga untuk dikonversi, Google Gson. Yang ini tampaknya tidak dapat dikonversi dengan sukses. Itu terus melaporkan kesalahan format JSON, tetapi verifikasi telah benar dan upaya gagal. Tipe kedua adalah net.sf.json, yang berarti tidak ada kesalahan yang dilaporkan, tetapi nilai objek selalu kosong. Hanya Json-Simple yang berhasil mengonversi objek
Parse Json
Pertama -tama, kita perlu mengurai JSON untuk melihat apakah JSON adalah format JSON standar. Kami dapat melihat JSON dalam banyak format online di internet. Secara umum, kami mengganti sup dan bukan obat saat mengupas JSON sebagai objek.
Yang pertama: Saya perlu mengetahui struktur JSON. Di sini saya akan memulai server A dan mendapatkan serangkaian data JSON dari URL -nya.
Melempar Data Salin JSON ke alat pemformatan dapat dengan jelas melihat struktur:
{"EventList": [{"id": 1030, "EventId": "1508779115818499700", "CreateTime": 1508779115000, "Endtime": 1508865480000, "EventContent": "123", "Openid": "O4EWZ06XZHW6MC2GMZMYVDETX1ZK"}, {"id": 1029, "EventId": "15083829072516660498", "AHEBETIME" ":" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " "OpenID": "O4EWZ06XZHW6MC2GMZMYVDETX1ZK"}, {"id": 1028, "EventId": "1508308708414580378" "", ""04," eventime ", 1508308721000," "O4EWZ06XZHW6MC2GMZMYVDETX1ZK"}, {"id": 1027, "EventId": "15083084633306664814", "createtime": 1508308480000, "endtime": 1508308560 "" "" "" "" "" "" "" "O4EWZ06XZHW6MC2GMZMYVDETX1ZK"}, {"id": 1026, "EventId": "1508308463017144213", "createtime": 150830849000, "endtime": 150830856 "" "" "" "" "" "" " "o4ewz06xzhw6mc2gmzmyvdetx1zk"}], "halaman": "1", "size": "5", "ishaspage": "1"}Kedua: Buat kelas entitas yang sesuai berdasarkan struktur
Impor com.yhn.consumer.entity.event; import lombok.data; impor org.json.simple.jsonObject; import java.io.serializable; import java.util.list; @dataapublic eventVo mengimplementasikan serializable {private list <event> eventlist; halaman string pribadi; ukuran string pribadi; string pribadi ishaspage; public eventVo (objek jsonObject) {// Metode Konstruktor menetapkan nilai ke objek EventList = (List <dist>) Object.get ("EventList"); halaman = (string) object.get ("halaman"); size = (string) object.get ("size"); ishaspage = (string) object.get ("isHaspage"); }} Karena ini adalah struktur yang tertanam, berikut ini adalah kelas acara dalam private List<Event> eventList ;
impor lombok.data; impor org.hibernate.annotations.dynamicupdate; impor javax.persistence.entity; impor javax.persistence.generatedValue; impor javax.persistence.id; impor java.io.serializable; impor java.util.persistence@data@data Serializable {// Ini adalah acara dalam daftar di eventvo @id @generatedValue Private Integer ID; // Fungsi Penyortiran Private String EventId; // ID Acara CreateTime Tanggal Pribadi; // Waktu Penciptaan Tanggal Pribadi akhir; // Perbarui Waktu Private String EventContent; // ingatkan konten acara string pribadi openId; // ID pengguna} Kelas tes
Selanjutnya, strukturnya juga ditulis. Anda akan menulis tes unit di Server B untuk melihat apakah nilainya dapat ditetapkan dengan sukses.
@Test public void clientDemo () melempar Exception {StringBuilder json = new StringBuilder (); Url urlobject = URL baru ("http://127.0.0.1/meetingsign/test/server?openid=o4ewz06xzhw6mc2gmzmyvdetx1zk&page=2&size=5"); // Tentukan url httpUrlConnection uC = (httpurlconnection) urlObject .openconnection (); // Aktifkan koneksi bufferedReader di = BufferedReader baru (inputStreamReader baru (uC.getInputStream (), "UTF-8")); Inputline String = null; while ((inputline = in.readline ())! = null) {json.append (inputline); // split json} in.close (); uc.disconnect (); System.out.println (JSON); // Lihat apakah Anda mendapatkannya. // Hapus kemungkinan UTF-8, dll., Karena mungkin berisi file header BOM. String result = formatString (json.toString ()); Jsonparser parser = jsonparser baru (); org.json.simple.jsonObject data = org.json.simple.jsonObject () baru; data = (org.json.simple.jsonObject) parser.parse (hasil); Eventvo eventVo = eventvo baru (data); // Lewati nilai ke log.info ("eventVo = {}", eventVo); }/*** Hapus header bom*/format string statis publik (string s) {if (s! = Null) {s = s.replaceall ("/ufeff", ""); } return s; } Hasil tes
Itu diberi nilai pada objek
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.