1、string轉json
有三種方法
第一種:string直接轉json
String json = "{\"2\":\"efg\",\"1\":\"abc\"}"; JSONObject json_test = JSONObject.fromObject(json); 將string的雙引號轉義即可,適用於字符串較短的
第二種:將string轉爲list後轉爲json
List<String> list = new ArrayList<String>(); list.add("username"); list.add("age"); list.add("sex"); JSONArray array = new JSONArray(); array.add(list);
可以使用list的add函數將需要的字符串拼接即可,但是這個只能使用jsonarry
第三種:將string轉爲map後轉爲json
Map<String, String> map = new HashMap<String, String>();
map.put("1", "abc");
map.put("2", "efg");
JSONArray array_test = new JSONArray();
array_test.add(map);
JSONObject jsonObject = JSONObject.fromObject(map);
這裏使用map就可以將字符串轉化爲JSONArray或者JSONObject都可以,但是這裏的鍵不能使用int型
1、json轉string
先構造json:JSONObject string_to_json = JSONObject.fromObject("{\"data\": {\"pages\": [ {\"comment\": \"just for test\"},{\"comment\": \"just for test\"}],\"total_count\": 2 },\"errcode\": 0}");
對於JSONObject而言就可以直接使用
JSONObject json_to_data = string_to_json.getJSONObject("data");即可
對於JSONArray而言就可以使用這兩種
第一種:JSONArray json_to_strings = json_to_data.getJSONArray("pages");//先將JSONObject裏包含的JSONArray取出
for (Object object : json_to_strings) {//循環讀取即可
JSONObject json_to_string = JSONObject.fromObject(object);
json_to_string.get("pages");
}
第二種:JSONArray json_to_strings_test = json_to_data1.getJSONArray("pages");//先將JSONObject裏包含的JSONArray取出
for (int i = 0; i < json_to_strings_test.size(); i++) {//循環讀取即可
JSONObject json_to_string1 = json_to_strings_test.getJSONObject(i);
}
上面全部程序的測試如圖:
下面貼出代碼:
//string構築json
String json = "{\"2\":\"efg\",\"1\":\"abc\"}";
JSONObject json_test = JSONObject.fromObject(json);
System.out.print("json_test:"+json_test);
System.out.print("\n");
//使用list構築json(list只能使用JSONArray)
List<String> list = new ArrayList<String>();
list.add("username");
list.add("age");
list.add("sex");
JSONArray array = new JSONArray();
array.add(list);
System.out.print("array:"+array);
System.out.print("\n");
//初始化HashMap集合並添加數組(json必須鍵不能是int類型)
Map<String, String> map = new HashMap<String, String>();
map.put("1", "abc");
map.put("2", "efg");
JSONArray array_test = new JSONArray();
array_test.add(map);
System.out.print("array_test:"+array_test);
System.out.print("\n");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.print("jsonObject:"+jsonObject);
System.out.print("\n");
//解析json
JSONObject string_to_json = JSONObject.fromObject("{\"data\": {\"pages\": [ {\"comment\": \"just for test1\"},{\"comment\": \"just for test2\"}],\"total_count\": 2 },\"errcode\": 0}");
JSONObject json_to_data = string_to_json.getJSONObject("data");
JSONArray json_to_strings = json_to_data.getJSONArray("pages");
for (Object object : json_to_strings) {
JSONObject json_to_string = JSONObject.fromObject(object);
json_to_string.get("pages");
System.out.print("json_to_string.get(\"pages\"):"+json_to_string.get("comment"));
System.out.print("\n");
}
JSONObject json_to_data1 = string_to_json.getJSONObject("data");
JSONArray json_to_strings_test = json_to_data1.getJSONArray("pages");
for (int i = 0; i < json_to_strings_test.size(); i++) {
JSONObject json_to_string1 = json_to_strings_test.getJSONObject(i);
System.out.print("json_to_string1.get(\"pages\"):"+json_to_string1.get("comment"));
System.out.print("\n");
}
有新的好的方法希望能夠討論