- 对json数组排序
- 数组元素按个添加内容
- 文件上传
1.对json数组排序
如: 对下面的age排序
//排序前
{
"employees": [
{ "firstName":"John" , "lastName":"Doe","age":"20" },
{ "firstName":"Anna" , "lastName":"Smith" ,"age":"40"},
{ "firstName":"Peter" , "lastName":"Jones","age":"30" }
]
}
//排序后
{
"employees": [
{ "firstName":"John" , "lastName":"Doe","age":"20" },
{ "firstName":"Peter" , "lastName":"Jones","age":"30" },
{ "firstName":"Anna" , "lastName":"Smith" ,"age":"40"}
]
}
public static void main(String[] args) {
String srr="{\"employees\":[{\"firstName\":\"John\",\"lastName\":\"Doe\",\"age\":\"20\"},{\"firstName\":\"Anna\",\"lastName\":\"Smith\",\"age\":\"40\"},{\"firstName\":\"Peter\",\"lastName\":\"Jones\",\"age\":\"30\"}]}";
JSONObject js= JSONObject.fromObject(srr);
JSONArray array=js.optJSONArray("employees");
//把array添加到list中
List<JSONObject> jsValue=new ArrayList<JSONObject>();
for (int i=0;i<array.size();i++){
jsValue.add(array.getJSONObject(i));
}
//对list jsValue 排序
Collections.sort(jsValue, new Comparator<JSONObject>() {
private static final String key="age";
@Override
public int compare(JSONObject o1, JSONObject o2) {
int i =Integer.parseInt(o1.optString(key));
int j =Integer.parseInt(o2.optString(key));
return i>j ? 1:-1;小到大排序
}
});
//新建一个json数组 存储排序后的数据
JSONArray sortArray =new JSONArray();
for (int i = 0; i <array.size() ; i++) {
sortArray.add(jsValue.get(i));
}
System.out.println(sortArray.toString());
}
2.数组元素按个添加内容
如: 一段数据为 [“1”,”2”,”3”,”4”,”5”],往这个数组里面添加“0”,
使其变为[“01”,”02”,”03”,”04”,”05”].
public static void main(String[] args) {
String st="[\"1\",\"2\",\"3\",\"4\",\"5\"]";
JSONArray jsonArray = JSONArray.fromObject(st);
Object[] objArr=jsonArray.toArray();
List<Object> list = java.util.Arrays.asList(objArr);
//定义一个数组存放数据 大小跟原来的一样
String [] personalPhoto = new String[list.size()];
//转为数组
personalPhoto = list.toArray(personalPhoto);
//添加的数据
for (int i = 0; i < objArr.length; i++) {
personalPhoto[i] = "0"+objArr[i].toString();
}
System.out.println(JSONArray.fromObject(personalPhoto).toString);
}
3.文件上传
Calendar cl = Calendar.getInstance();
String monthStr = String.valueOf(cl.get(Calendar.MONTH) + 1);
String yearStr = String.valueOf(cl.get(Calendar.YEAR));
String dayStr = String.valueOf(cl.get(Calendar.DATE));
String fileType = null;
String rootPath = request.getRealPath("/");
String filePath = "/upload/" + yearStr + "/" + monthStr + "/" + dayStr + "/";//设置存放的目录
java.io.File destDir = new java.io.File(rootPath + filePath);
//目录不存在 创建目录
if (!destDir.exists()) {
destDir.mkdirs();
}
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(4 * 1024 * 1024); // 设置允许用户上传文件大小,单位:字节
fu.setSizeThreshold(409600); // 设置最多只允许在内存中存储的数据,单位:字节
//开始读取上传信息
java.util.List fileItems = null;
try {
fileItems = fu.parseRequest(request);
} catch (Exception e) {
}
Map<String,Object> map = new HashMap<String,Object>();
try {
Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
String name = "";
while (iter.hasNext()) {
org.apache.commons.fileupload.FileItem item = (org.apache.commons.fileupload.FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
name = item.getName();//获取上传文件名,包括路径
long size = item.getSize();
if ((name == null || name.equals("")) && size == 0) continue;
if(size>(4 * 1024 * 1024)){
map.put("success", false);
map.put("msg","图片大于4M");
out.print(JsonUtil.getJsonStringFromMap(map));
return;
}
//设置允许上传的格式
String photoType = ".JPG.BMP.GIF.PNG.JPEG.jpg.bmp.gif.png.jpeg.";
int lastFile = name.lastIndexOf(".");
String filetype = name.substring(lastFile );
if (photoType .indexOf(filetype + ".") == -1) {
String gender="你上传的图片 " + filetype + " 类型不合法!";
map.put("success", false);
map.put("msg",gender);
out.print(JsonUtil.getJsonStringFromMap(map));
return;
}
long mil = System.currentTimeMillis();
filetype = ".jpg";
name = mil + filetype;
File fNew = new File(rootPath + filePath, name);
try {
item.write(fNew);
} catch (Exception e) {
map.put("success", false);
map.put("msg","");
out.print(JsonUtil.getJsonStringFromMap(map));
return;
}
}
}
name = filePath + name;
map.put("success", true);
map.put("msg", "");
System.out.println(JsonUtil.getJsonStringFromMap(map));
out.print(JsonUtil.getJsonStringFromMap(map));
return;
} catch (IOException e) {
map.put("success", false);
map.put("msg", "");
out.print(JsonUtil.getJsonStringFromMap(map));
return;
}