Apa yang dimaksud dengan JSON ?
Berdasarkan pengertian dari webnya . JSON adalah JSON (JavaScript Object Notation) adalah format pertukaran data (lightweight data-interchange format), mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 – Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.

JSON terbuat dari dua struktur:
-Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array.

-Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).

Memahami JSON di PHP.
Dalam artinya lain, JSON dapat kita katakan sebagai pemaketan data yang bertujuan untuk menjembatani antara antar muka dengan service background seperti database server, sama halnya dengan penggunaan xml. Dalam Json, yang kita perlu pahami hanya dua kunci yaitu key dan value. key kalau digambarkan secara sederhana adalah nama field dan value adalah isinya.

Documentasi Penggunaan JSON di php dapat dilihat yg lebih detailed di

Pada dasarnya Json sendiri adalah data berbentuk String untuk parsing-parsing data. kita dapat membuat Json hanya dengan menggunakan variabel string yang ditulis secara manual seperti dibawah ini

echo “{nama:’wilis’}”;

Penggunaan contoh diatas kurang dianjurkan karena tidak efesien, penggunaan yang dianjurkan adalah menggunakan fungsi json_encode

$result = Array() //definisi result sebagai array
$result[‘nama’] = “wilis”; //membuat array dengan key nama valuenya budi
echo json_encode($result); //mengubah array kedalam format json (string)

Menggunakan object

$result = new stdClass();
$result->nama = “wilis”;
echo json_encode($result);

Contoh Penggunaan JSON di Android dengan PHP

sumber asli : http://www.helloandroid.com/tutorials

– Persiapkan databasenya

create databases latihan;
uses latihan;
CREATE TABLE people
(
id int(11) NOT NULL Primary Key,
name varchar(20) NOT NULL,
sex int(11) NOT NULL,
birthyear int(11) NOT NULL
)

Lakukan proses insert data ke database misalnya seperti contoh berikut ;



INSERT INTO `people` 
(`id`, `name`, `sex`, `birthyear`) 
VALUES
(1, 'Safaat H', 1, 1970),
(2, 'Santoso', 2, 2010),
(3, 'Nazruddin Safaat H', 1, 1996),
(4, 'Budi Santoso', 2, 1982);

– Persiapkan file phpnya dengan parse json
mysqlcon.php

    <?php
          mysql_connect("127.0.0.1","root","");
          mysql_select_db("latihan");
          $q=mysql_query("SELECT * FROM people WHERE birthyear >'".$_REQUEST['year']."'");
          while($e=mysql_fetch_assoc($q))
                 $output[]=$e;
                 print(json_encode($output));
                 mysql_close();
    ?>

dari query data diatas yang akan kita ambil data adalah yg kelahirannya diatas tahun yang dikirim dari program, dan datanya yang dimasukkan kedalam array json.

– Persiapkan file java untuk koneksinya

KonekActivity.java

    package com.connector;

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.LinearLayout;
    import android.widget.TextView;


    public class KonekActivity extends Activity {
    /** Called when the activity is first created. */
       
       TextView txt;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // Create a crude view - this should really be set via the layout resources 
        // but since its an example saves declaring them in the XML. 
        LinearLayout rootLayout = new LinearLayout(getApplicationContext()); 
        txt = new TextView(getApplicationContext()); 
        rootLayout.addView(txt); 
        setContentView(rootLayout); 

        // Set the text and call the connect function. 
        txt.setText("Connecting...");
      //call the method to run the data retreival
        txt.setText(getServerData(KEY_121));



    }
    public static final String KEY_121 = "http://10.0.2.2/hellomysql/mysqlcon.php"; //i use my real ip here



    private String getServerData(String returnString) {
       
       InputStream is = null;
       
       String result = "";
        //the year data to send
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("year","1970"));

        //http post
        try{
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(KEY_121);
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();

        }catch(Exception e){
                Log.e("log_tag", "Error in http connection "+e.toString());
        }

        //convert response to string
        try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                }
                is.close();
                result=sb.toString();
        }catch(Exception e){
                Log.e("log_tag", "Error converting result "+e.toString());
        }
        //parse json data
        try{
                JSONArray jArray = new JSONArray(result);
                for(int i=0;i<jArray.length();i++){
                        JSONObject json_data = jArray.getJSONObject(i);
                       Log.i("log_tag","id: "+json_data.getInt("id")+
                                ", name: "+json_data.getString("name")+
                               ", sex: "+json_data.getInt("sex")+
                                ", birthyear: "+json_data.getInt("birthyear")
                        );
                        
                      // Log.i("log_tag",json_data.getInt("id")+ json_data.getString("name")+json_data.getInt("sex")+json_data.getInt("birthyear")); 
                       
                       //Get an output to the screen
                        returnString += "\n\t" + jArray.getJSONObject(i);
                }
        }catch(JSONException e){
                Log.e("log_tag", "Error parsing data "+e.toString());
        }
        return returnString;
    }   
       
    }
 

sesuai coding data yang dilakukan yang akan ditampilkan adalah data yang birthdaynya diatas 1970 seperti tampilan data berikut :

uxc.wilis
🙂