1、设置
POST方法里设置
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
response.setContentType("text/json; charset=utf-8");
//防止post进来的文字乱码
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
2、JSONObject 使用optString(“user”)调用可以避免找不到user时报错,optString找不到会返回空值,而getString(“user”)则会报错
//数组样式
{'status':'kqadd','user':[{'id':'12'},{'id':'13'}]}
//代码
String sb = reqJson(request);
JSONObject sbjson = new JSONObject();
JSONObject responjson = new JSONObject();
System.out.println("xx:"+sb);
if(sb.equals(null) || sb.equals("")){
System.out.println("sb empty");
}
else{
sbjson= JSONObject.fromObject(sb);
String str = sbjson.optString("user");//使用opt可以防止报错
JSONArray json = JSONArray.fromObject(str);
if(json.size()>0){
for(int i=0;i<json.size();i++){
// 遍历 jsonarray 数组,把每一个对象转成 json 对象
JSONObject job = json.getJSONObject(i);
// 得到 每个对象中的属性值
System.out.println(job.get("name")+"=") ;
}
System.out.println("sb:"+sbjson.get("user"));
}
3、String sb = reqJson(request)具体方法
// req转json
public static String reqJson(HttpServletRequest request) {
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = request.getReader()) {
char[] buff = new char[1024];
int len;
while ((len = reader.read(buff)) != -1) {
sb.append(buff, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}