便于内嵌类型json串的解析
导入jar包
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.activiti.engine.impl.util.json.JSONArray;
import org.activiti.engine.impl.util.json.JSONObject;
import org.apache.commons.httpclient.util.HttpURLConnection;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
代码如下:
public void updateStock(HttpServletRequest request,HttpServletResponse response) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
String line="";
StringBuffer sb = new StringBuffer();
while((line=in.readLine())!=null){
sb.append(line);
}
// System.out.println(sb.toString());
String sss = sb.toString();
// 判断字符串为空,无参校验
if(sb.length() < 1 || sss.equals("")) {
String meaasge = "{\"status\":\"error\",\"message\":\"传入参数为空\"}";
response.getOutputStream().write(meaasge.getBytes("UTF-8"));
return;
}
// 解析json
JSONObject jsonObject = null;
jsonObject = new JSONObject(sss);
Map mls = new HashMap();
List<Map> lsmap = new ArrayList<Map>();
Iterator iterator = jsonObject.keys();
String key = null;
String value = null;
while (iterator.hasNext()) {
key = (String) iterator.next();
value = jsonObject.getString(key);
// 存储子表信息
if (key.equals("bodylist")) {
JSONArray array = jsonObject.getJSONArray(key);
for (int i = 0; i < array.length(); i++) {
String key1 = null;
String value1 = null;
JSONObject jb = array.getJSONObject(i);
Map mitems = new HashMap();
Iterator iterator1 = jb.keys();
while (iterator1.hasNext()) {
key1 = (String) iterator1.next();
value1 = jb.getString(key1);
mitems.put(key1, value1);
}
lsmap.add(mitems);
}
} else {
mls.put(key, value);
}
}
String result = test(mls,lsmap);
response.getOutputStream().write(result.getBytes("UTF-8"));
}