Java and JSON (Create/Parser) |
Java and JSON (Create/Parser) ในการเขียนโปรแกรมด้วยภาษา Java การนำ JSON เข้ามาช่วยในการเขียนโปรแกรมบน Android นั้นจะมีประโยชน์ในด้านการรับส่งข้อมูลระหว่าง Application ที่เป็นแบบ Server -> Client หรือ Client -> Server โดย JSON จะแปลงข้อมูลที่อยู่ในรูปแบบของ Array ให้เป็นข้อความ JSON จากนั้นข้อความเหล่านั้นจะถุกส่งไปยังปลายทาง โดยใน Application ปลายทางก็จะมี function สำหรับการ Decode ข้อความ JSON เช่นเดียวกัน นิยมการกับการรับส่งผ่าน REST หรือ Web Service และในกรณีที่ต้องการเขียน Java เพื่อทำการ Encode หรือ Decode ตัว JSON ด้วยภาษา Java จะไม่มี Library ให้ใช้งานโดยตรง แต่อยากจะแนะนำให้ใช้ Library ของ org-json-java ซึ่งเป็น Library ที่สามารถใช้งานได้ฟรี และได้รับความริยมค่อนข้างมาก
Java and JSON
ก่อนการใช้งาน JSON จะต้องทำการ Download ตัว Library ของ org-json-java มา Import เข้าใน Project ซะก่อนถึงจะสามารถเรียกใช้ Class ต่าง ๆ
Download org-json-java
https://code.google.com/p/org-json-java/
หลังจากที่ Download ไฟล์ jar แล้วให้ Copy ไปไว้ในโฟเดอร lib
คลิกขวาที่ Project -> Properties
ในส่วนของ Build Path เลือก Add JARs..
เลือก Library
ได้ Library เรียบร้อยแล้ว
1. การอ่าน JSON แบบง่าย ๆ
JSON Code
MyClass.java
package com.java.myapp;
import org.json.JSONObject;
public class MyClass {
public static void main(String[] args) {
try {
String json = "{\"sName\":\"Sawatdee : Weerachai Nukitram\",\"sEmail\":\"Sawatdee : [email protected]\"}";
JSONObject c = new JSONObject(json);
String strResultName = c.getString("sName");
String strResultEmail = c.getString("sEmail");
System.out.println(strResultName);
System.out.println(strResultEmail);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
2. การอ่าน JSON ที่ที่ Array แบบ 2 มิติ
JSON Code
[{
"MemberID":"1",
"Name":"Weerachai",
"Tel":"0819876107"
},
{
"MemberID":"2",
"Name":"Win",
"Tel":"021978032"
},
{
"MemberID":"3",
"Name":"Eak",
"Tel":"087654321"
}]
MyClass.java
package com.java.myapp;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONObject;
public class MyClass {
public static void main(String[] args) {
try {
String strJSON = "[{\"MemberID\":\"1\",\"Name\":\"Weerachai\",\"Tel\":\"0819876107\"}" +
",{\"MemberID\":\"2\",\"Name\":\"Win\",\"Tel\":\"021978032\"}" +
",{\"MemberID\":\"3\",\"Name\":\"Eak\",\"Tel\":\"0876543210\"}]";
JSONArray data = new JSONArray(strJSON);
ArrayList<HashMap<String, String>> myArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, String>();
map.put("MemberID", c.getString("MemberID"));
map.put("Name", c.getString("Name"));
map.put("Tel", c.getString("Tel"));
myArrList.add(map);
}
/*** Write Outout ***/
for (int i = 0; i < myArrList.size(); i++) {
String sMemberID = myArrList.get(i).get("MemberID").toString();
String sName = myArrList.get(i).get("Name").toString();
String sTel = myArrList.get(i).get("Tel").toString();
System.out.println("MemberID = " + sMemberID);
System.out.println("Name = " + sName);
System.out.println("Tel = " + sTel);
System.out.println("=========================");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
MemberID = 1
Name = Weerachai
Tel = 0819876107
=========================
MemberID = 2
Name = Win
Tel = 021978032
=========================
MemberID = 3
Name = Eak
Tel = 0876543210
=========================
3. การสร้าง JSON Code ด้วย Java แบบง่าย ๆ
MyClass.java
package com.java.myapp;
import org.json.JSONArray;
import org.json.JSONObject;
public class MyClass {
public static void main(String[] args) {
try {
/*** Create JSON ***/
JSONObject object = new JSONObject();
object.put("MemberID","1");
object.put("Name", "Weerachai");
object.put("Tel", "0819876107");
JSONArray json = new JSONArray(object);
System.out.println(json.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
{"MemberID":"1","Name":"Weerachai","Tel":"0819876107"}
4. การสร้าง JSON Code แบบ Array 2 มิติ
MyClass.java
package com.java.myapp;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
public class MyClass {
public static void main(String[] args) {
try {
/*** Create JSON ***/
ArrayList<JSONObject> MyArrJson = new ArrayList<JSONObject >();
JSONObject object;
/*** Rows 1 ***/
object = new JSONObject();
object.put("MemberID","1");
object.put("Name", "Weerachai");
object.put("Tel", "0819876107");
MyArrJson.add(object);
/*** Rows 2 ***/
object = new JSONObject();
object.put("MemberID","2");
object.put("Name", "Win");
object.put("Tel", "021978032");
MyArrJson.add(object);
/*** Rows 3 ***/
object = new JSONObject();
object.put("MemberID","3");
object.put("Name", "Eak");
object.put("Tel", "0876543210");
MyArrJson.add(object);
JSONArray json = new JSONArray(MyArrJson);
System.out.println(json.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
[{
"MemberID":"1",
"Name":"Weerachai",
"Tel":"0819876107"
},
{
"MemberID":"2",
"Name":"Win",
"Tel":"021978032"
},
{
"MemberID":"3",
"Name":"Eak",
"Tel":"087654321"
}]
สำหรับบทความนี้เป็นเพียงตัวอย่างการ อ่านค่า JSON และสร้าง JSON แบบง่าย ๆ แต่สามารถนำไปประยุกต์กับการใช้งานได้หลากหลาย
|