Menggunakan JSON di Netbeans 8.2

Tidak disangka penulis, library JSON ternyata tidak disertakan menjadi default dari JDK Netbeans.

Developer harus menambahkan sendiri, jika membutuhkan JSON dalam aplikasinya.

Cara yang paling mudah adalah dengan mendownload dan menambahkan sebagai library di folder Libraries di Netbeans.


Sedangkan penulis, mendapatkan library JSON dari Google Code Archive, dengan link dibawah ini:


Perlu diketahui, penulis menggunakan NetBeans 8.2, dengan  JDK (Java Development Kit) versi 8.

Alasan penulis memilih library JSON dari Google, pertama karena faktor kepercayaan, terutama terkait sisipan malware atau semacamnya.

Dari beberapa link yang disediakan oleh Google Search, menurut penulis, link di atas adalah satu link yang dapat dipercaya.

Tidak lucu jika library pihak ketiga yang kita gunakan, sebagai developer, ternyata disisipi malware.

Kedua, produk akhir aplikasi Java penulis adalah berbentuk aplikasi Android dengan bahasa pemrograman Java.

Sehingga dengan menggunakan library yang "sama", penulis berharap modifikasi yang akan dilakukan di versi Android-nya nanti tidak terlalu banyak.

Kode dibawah ini adalah contoh kode untuk melakukan parsing data JSON yang diambil melalui InputStream, dengan HttpsURLConnection:

    private void sendLogin() 
    { 
        onsendingdata=true; 
        errormessage.setText("Sending data, please wait!"); 

        Map<String,String> data = new HashMap<>(); 
        data.put("username",username_text.getText()); 
        data.put("password",String.valueOf(password_text.getPassword())); 

        StringBuilder sbParams = new StringBuilder(); 
        int i = 0; 
        for (String key : data.keySet()) { 
            try { 
                if (i != 0){ 
                    sbParams.append("&"); 
                } 
                sbParams.append(key).append("=") 
                        .append(URLEncoder.encode(data.get(key), "UTF-8")); 
 
            } catch (UnsupportedEncodingException e) { 
                e.printStackTrace(); 
            } 
            i++; 
        } 

        HttpsURLConnection connection=null; 
        try{ 
            URL url = new URL("https://example.com/login.php"); 
            connection = (HttpsURLConnection)url.openConnection(); 
            connection.setReadTimeout(15000); 
            connection.setConnectTimeout(15000); 
            connection.setDoInput(true); 
            connection.setDoOutput(true); 

            String paramsString = sbParams.toString(); 
 
            DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); 
            wr.writeBytes(paramsString); 
            wr.flush(); 
            wr.close(); 

            connection.connect(); 

            int responseCode=connection.getResponseCode(); 
            if (responseCode == HttpsURLConnection.HTTP_OK) { 
                errormessage.setText("Getting response!"); 
                InputStream in = new BufferedInputStream(connection.getInputStream()); 

                JSONParser jsonParser = new JSONParser(); 
                JSONObject jsonObject = (JSONObject) jsonParser.parse(new InputStreamReader(in)); 
 
                if(((String) jsonObject.get("error")).isEmpty()){ 
                    if(karyawan!=null)karyawan.setLoginPrivilages((String) jsonObject.get("username"),(String)jsonObject.get("password")); 
                }else{ 
                    JOptionPane.showMessageDialog(null,(String)jsonObject.get("error")); 
                    errormessage.setText("Failed!"); 
                } 
            }else{ 
                JOptionPane.showMessageDialog(null,"Error code "+responseCode); 
                errormessage.setText("Failed!"); 
            } 
        } catch (IOException | ParseException e) { 
            errormessage.setText("Failed!"); 
            JOptionPane.showMessageDialog(null,e.toString()); 
            onsendingdata=false; 
        } finally { 
          if (connection != null) { 
              connection.disconnect(); 
          } 
          onsendingdata=false; 
        } 
    } 

Dimana struktur data JSON dari URL login.php, yang dibaca kurang lebih sebagaimana berikut:

    {
         "username":"administrator",
         "password":"WFairK2xjni0wukPWLSkAwAgwOSuI12FHd",
         "error":""
    }

Referensi

Komentar



Postingan populer dari blog ini

Apps Script untuk Cetak Sertifikat

Anak Usia Sekolah Hendaknya tidak hanya Bermain Game Online

Seberapa Hebatkah Orang Dalam

Review Pengguna yang Berperilaku Konsumtif

Dibalik Penerimaan CPNS 2018

Ngobrol Penghabisan Dana Akhir Tahun

Perguruan Tinggi, Investasi atau Formalitas Semata?

Menggambar Lingkaran Menyala dengan Efek Shadow

Tip Memilih Notaris

Kaidah Baku untuk Konsistensi Data (PT, Tbk, Pty., & Ltd.)