在使用JSON的時候我們發現有如下問題需要注意,如下列代碼
[java] JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("test", "測試1");
jsonObject.put("test", 100);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(jsonObject);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("test", "測試1");
jsonObject.put("test", 100);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(jsonObject);
}
我第一次認為會輸出兩列值,後來發現Json對象是Name Value對(即子項目)的無序集合,相當於一個Map對象,所以結果就是一個
{"test":100}
[java] JSONObject jsonObject = new JSONObject();
JSONArray member=new JSONArray();
JSONObject jsonObject2=new JSONObject();
try {
jsonObject.put("test", "測試1");
jsonObject.put("test1", 100);
jsonObject2.put("test", "測試1");
jsonObject2.put("test1", 100);
member.put(jsonObject);
member.put(jsonObject2);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println( member);
JSONObject jsonObject = new JSONObject();
JSONArray member=new JSONArray();
JSONObject jsonObject2=new JSONObject();
try {
jsonObject.put("test", "測試1");
jsonObject.put("test1", 100);
jsonObject2.put("test", "測試1");
jsonObject2.put("test1", 100);
member.put(jsonObject);
member.put(jsonObject2);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println( member);
}
jsonArray與jsonObject不一樣,它的裡面可以存放重複資料,並且是有序的,所以這裡輸出的是
[{"test1":100,"test":"測試1"},{"test1":100,"test":"測試1"}]