1、需求:
[{"uid":"1352529269655957506","name":"guns升级.txt","type":"file","url":"http://172.16.1.154/api/sysFileInfo/download?id=1352529269655957506","status":"done"},{"uid":"1352529287565635585","name":"ANTV-X6.txt","type":"file","url":"http://172.16.1.154/api/sysFileInfo/download?id=1352529287565635585","status":"done"}]
取出json字符串中的uid进行拼接
2、解决
①方法一: 一次性转:将字符串转成List<JSONObject>
private String handerFileData(String fileData){
StringBuilder temp = new StringBuilder();
if(!StringUtils.isEmpty(fileData)){
// 一次性转:将字符串转成List<JSONObject>
List<JSONObject> fileDataList = JSONArray.parseObject(fileData, List.class);
for (int i = 0; i < fileDataList.size(); i++){
JSONObject jsonObject = fileDataList.get(i);
if(StringUtils.isEmpty(jsonObject)){
continue;
}
String uid = jsonObject.get("uid").toString();
if(StringUtils.isEmpty(uid)){
continue;
}
temp.append(uid);
if(i + 1 < fileDataList.size()){
temp.append(";");
}
}
}
return temp.toString();
}
②方法二:分开转 ( 第一次转(字符串转JSONArray);第二次转(字符串转JSONObject))
private String handerFileData(String fileData){
StringBuilder temp = new StringBuilder();
if(!StringUtils.isEmpty(fileData)){
// 分开转
// 第一次转(字符串转JSONArray)
JSONArray fileDataArr = JSON.parseArray(fileData);
for (int i = 0; i < fileDataArr.size(); i++) {
Object fileDataItemObj = fileDataArr.get(i);
if(StringUtils.isEmpty(fileDataItemObj)){
continue;
}
// 第二次转(字符串转JSONObject)
JSONObject jsonObj = JSON.parseObject(fileDataItemObj.toString());
if(StringUtils.isEmpty(jsonObj)||StringUtils.isEmpty(jsonObj.get("uid"))){
continue;
}
String uid = jsonObj.get("uid").toString();
if(!StringUtils.isEmpty(uid)){
continue;
}
temp.append(uid);
if(i + 1 < fileDataArr.size()){
temp.append(";");
}
}
}
return temp.toString();
}