2009年1月15日

Java:JSON in Java 的簡單程式範例


 
若你要找的是打包 json.jar 的方式或想直接下載,
請到 Java:JSON.jar 下載與JSON source code 打包教學

JSON(JavaScript Object Notation)
因為格式簡單且用純文字方便讀取
支援了各式各樣的語言(都有相關的函式可用)
在資料處理交換上是很方便的格式
可以在這邊看到詳細介紹

以下的程式簡單地示範了JAVA中JSON的應用
其中包含了一個 PeopleBean 及主要的程式碼

PeopleBean:
 1 package werdna1222coldcodes.blogspot.com.demo.json;
 2 
 3 public class PeopleBean {
 4 
 5     private String name;
 6     private int age;
 7     private boolean gender;
 8 
 9     public PeopleBean(String name, int age, boolean gender) {
10         setPeopleBean(name, age, gender);
11     }
12 
13     public String getName() {
14         return name;
15     }
16 
17     public void setName(String name) {
18         this.name = name;
19     }
20 
21     public int getAge() {
22         return age;
23     }
24 
25     public void setAge(int age) {
26         this.age = age;
27     }
28 
29     public boolean getGender() {
30         return gender;
31     }
32 
33     public void setGender(boolean gender) {
34         this.gender = gender;
35     }
36 
37     /***************************************************************/
38     public void setPeopleBean(String name, int age, boolean gender) {
39         setName(name);
40         setAge(age);
41         setGender(gender);
42     }
43 
44 }

主程式:
 1 package werdna1222coldcodes.blogspot.com.demo.json;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 import org.json.JSONArray;
 6 import org.json.JSONException;
 7 import org.json.JSONObject;
 8 
 9 public class JsonDemo {
10 
11     public static void main(String[] args) throws JSONException {
12 
13         // 利用bean來產生一個對應的JSONObject
14         PeopleBean Mary = new PeopleBean("Mary", 20, false);
15         JSONObject jsonObjectMary = new JSONObject(Mary);
16         System.out.println("1: " + jsonObjectMary);
17 
18         // 利用map的對照來產生JSONObject
19         Map map = new HashMap();
20         map.put("name", "Jacky");
21         map.put("age", 30);
22         map.put("gender", true);
23         JSONObject jsonObjectJacky = new JSONObject(map);
24         System.out.println("2: " + jsonObjectJacky);
25 
26         // 每個JSONObject都能利用JSONObject.put(key, value)
27                                                       來增加屬性
28         jsonObjectJacky.put("height", 180);
29         System.out.println("3: " + jsonObjectJacky);
30 
31         // 利用 JSON 的字串產生 JSONObject
32         String jackyJsonString = jsonObjectJacky.toString();
33         JSONObject jsonObjectJackyFromString = new JSONObject(
34                                                jackyJsonString);
35 
36         // JSONObject.get(key) 可取得 JSONObject中對應的值
37         // 找不到的話會丟出 org.json.
38         JSONException如下面註解掉那行
39         System.out.println("4: " + jsonObjectJackyFromString.get(
40                            "name"));
41         // System.out.println(jsonObjectJackyFromString.get("weight"));
42 
43         // 由JSONObject.names()取回names的JSONArray
44         JSONArray jsonArrayNames = jsonObjectJacky.names();
45         System.out.println("5: " + jsonArrayNames);
46 
47         // JSONArray可藉由JSONArray.put(value)
48                                            來增加Array中的值
49         jsonArrayNames.put("weight");
50         System.out.println("6: " + jsonArrayNames);
51     }
52 }

產生的結果
1: {"gender":false,"age":20,"name":"Mary"}
2: {"gender":true,"age":30,"name":"Jacky"}
3: {"gender":true,"age":30,"height":180,"name":"Jacky"}
4: Jacky
5: ["gender","age","height","name"]
6: ["gender","age","height","name","weight"]

更多 Java 程式範例,可見:Java 教學及程式範例大全

關鍵字:JSON, 程式範例, 程式教學
參考資料:
  1. JSON in Java


更多精選推薦文章