字符串:str
json格式的字符串: jsonStr
jsonArray格式的字符串: jsonArrayStr
json数组: jsonArray
一. json 与 String 的相互转换
(1) json格式的字符串 转 JSONArray
语法: JSONArray jsonArray = JSONArray.parseArray(jsonStr);
String projects = "[\"java\",\"pyhton\",\"C++\"]";
JSONArray jsonArray = JSONArray.parseArray(projects);
System.out.println(jsonArray);
结果: ["java","pyhton","C++"]
二. json与List的相互转换
(1) List<String> 转 JSONArray
List<String> strList = new ArrayList<>();
strList.add("java");
strList.add("python")
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(strList));
System.out.println(jsonArray);
结果: ["java","pyhton"]
(2) List<Dto> 转 JSONArray
思路: 遍历List,将Dto转换成JSONObject — JSONArray.add(JSONObject )
JSONArray jsonArray = new JSONArray();
List<Dto> dtoList = new ArrayList<>();
for (int i = 0; i< 5; i++){
JSONObject obj= new JSONObject();
Dto dto= new Dto();
dto.setId("100"+i);
dto.setTime("200"+i);
obj.put("id",dto.getId());
obj.put("time",dto.getTime());
jsonArray.add(obj);
}
System.out.println(jsonArray);
(3) JSONArray 转 List<String> / List<Integer>
语法: List<String> list= JSONArray.parseArray(jsonStr, String.class);
String projects = "[\"java\",\"pyhton\",\"C++\"]";
List<String> list= JSONArray.parseArray(projects, String.class);
System.out.println(list);
结果: [java, pyhton, C++]
语法: List<Integer> list= JSONArray.parseArray(jsonStr, Integer.class);
String counts = "[\"1\",\"2\",\"3\"]";
List<Integer> integers = JSONArray.parseArray(counts, Integer.class);
for (Integer i :integers ){
System.out.print(i + " ");
}
System.out.println(integers);
结果: 1 2 3
[1, 2, 3]
(4) JSONArray 转 List<Dto>
语法: List dtolist= JSONArray.parseArray(jsonStr, Dto.class);
String dtos= "[{\"id\":\"1001\",\"time\":\"2001\"},{\"id\":\"1002\",\"time\":\"2002\"}]";
List<Dto> dtoList = JSONArray.parseArray(dtos, Dto.class);
for(Dto dto :dtoList ){
System.out.println(Dto.getId() + "," + Dto.getTime());
}
结果:1001,2001
1002,2002
(5)Dto 转 json格式
语法: JSONObject obj = JSONObject.toString(Dto);
JSONObject data = new JSONObject();
PackageDto packageDto = new PackageDto;
packageDto.setPackageId( "abc001");
packageDto.setPackageName("套餐A")
data.put("packageDto",JSONObject.toJSON(packageDto));
三. 判断json数组中是否存在字符串str
if(JSONArray.contains(str)){
Boolean flag = true;
}else{
Boolean flag = false;
}