1,net.sf.json.JSONObject
JSONObject是一個無序的鍵值對集合。值可以是任意類型:Boolean,JSONArray,JSONObject,Number,String,or the JSONObject.NULL Object
JSONArray是一個有序的值序列。值可以是任意類型:Boolean, JSONArray, JSONObject, Number, String, or the JSONNull object。
形如:[ "locality", "political" ]
JSONObject添加成員的方法element()與put()的區別:
put添加新成員:key是Object對象,value是Object對象
element添加新成員:key是String對象,value是JSONObject對象
實例:
import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonObjectArrayTest { public static void main(String[] args) { // 1.從字符串轉換成JSONArray對象,必須首尾為[,]; 工具代碼會判斷是否含有'['和']' String types1 = "[\"locality\",\"political\"]"; JSONArray jsonArray1 = JSONArray.fromObject(types1); System.out.println(jsonArray1.toString()); // 2.從一個JSONArray轉換成另一個JSONArray對象 JSONArray jsonArray2 = JSONArray.fromObject(jsonArray1); System.out.println(jsonArray2.toString()); // 3.將Collection對象, 本例為ArrayList轉換成JSONArray對象 List<String> types3 = new ArrayList<String>(); types3.add("locality"); types3.add("political"); JSONArray jsonArray3 = JSONArray.fromObject(types3); System.out.println(jsonArray3.toString()); // 4. new 一個JSONObject對象,使用put方法添加成員,如果已經存在key, 則替換value值 JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("types", jsonArray3); System.out.println(jsonObject1.toString()); // 5.將一個JSONObject對象轉換成另一個JSONObject對象 JSONObject jsonObject2 = JSONObject.fromObject(jsonObject1); System.out.println(jsonObject2); // 6.將一Map對象轉換成JSONObject對象 Map<String, List<String>> map = new LinkedHashMap<String, List<String>>(); List<String> list = new ArrayList<String>(); list.add("locality"); list.add("political"); map.put("types", list); JSONObject jsonObject3 = JSONObject.fromObject(map); System.out.println(jsonObject3); // 7.將String轉換成JSONObject對象 String str1 = "{\"types\":[\"locality\",\"political\"]}"; JSONObject jsonObject4 = JSONObject.fromObject(str1); System.out.println(jsonObject4); // 8.累積value到這個key下,這個key下value變成JSONArray, 如果value本身就是JSONArray,直接添加到里面 JSONObject jsonObject5 = jsonObject4.accumulate("place_id", "ChIJuSwU55ZS8DURiqkPryBWYrk"); System.out.println(jsonObject5.toString()); JSONObject jsonObject6 = jsonObject5.accumulate("place_id", "accumulate"); System.out.println(jsonObject5.toString()); System.out.println(jsonObject6); // 9.element將鍵值對放到JSONObject中, 如果key存在,則替換原來的value; // element與put的區別: 1.put返回的Object對象; element返回的是JSONObject對象 // 2.put的key為Object對象,element的key為String JSONObject jsonObject7 = jsonObject6.element("types", 1); System.out.println(jsonObject7.toString()); // 10.使用get方法,獲取成員 System.out.println(jsonObject7.getInt("types")); System.out.println(jsonObject7.getJSONArray("place_id")); System.out.println(jsonObject7.getJSONArray("place_id").get(1)); } }
輸出:
["locality","political"] ["locality","political"] ["locality","political"] {"types":["locality","political"]} {"types":["locality","political"]} {"types":["locality","political"]} {"types":["locality","political"]} {"types":["locality","political"],"place_id":"ChIJuSwU55ZS8DURiqkPryBWYrk"} {"types":["locality","political"],"place_id":["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]} {"types":["locality","political"],"place_id":["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]} {"types":1,"place_id":["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"]} 1 ["ChIJuSwU55ZS8DURiqkPryBWYrk","accumulate"] accumulate