传入参数类型 {
"aaa":"aaaa",
"bbb":"bbb",
"ccc":"ccc",
"waterMark":[{'name':'默认name1','position':'默认地址1'},{'name':'默认name2','position':'默认地址2'}]
}
遍历 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xxx.live.core.util.others.ConfigUtil;
import com.xxxx.live.webapp.util.HttpClientUtil;
import com.xxxx.mobilevideo.core.util.StringUtil; /**
* Servlet implementation class CloudCutStreamServlet
*/
public class CloudCutStreamServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Logger log = Logger.getLogger(RecordFinishServlet.class); /**
* @see HttpServlet#HttpServlet()
*/
public CloudCutStreamServlet() {
super();
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException { //1.校验参数
JSONObject resultMap = this.getResutltMap(req);
if (null == resultMap) {
response(resp, getMsg(false, "请求参数格式不正确", "10002"));
return;
}
String liveName = resultMap.getString("liveName");
String masterUrl = resultMap.getString("masterUrl");
String slaveUrl = resultMap.getString("slaveUrl"); // 可以为空
String reason=resultMap.getString("reason"); // 切流原因不可以为空
JSONArray waterMark=resultMap.getJSONArray("waterMark"); //接收对象里的数组
//判断水印是否为空,为空则使用默认水印,
if(waterMark.isEmpty()){
//使用默认的水印
String waterMarkDefaultValue="[{'name':'默认name1','position':'默认地址1'},{'name':'默认name2','position':'默认地址2'}]";
resultMap.put("waterMark", waterMarkDefaultValue);
}else{
//水印不为空判断数组中的json的key值是否为空
int jsonSize = waterMark.size(); //获取数组长度 for(int i=0;i<jsonSize;i++){
JSONObject jsonTemp = (JSONObject)waterMark.getJSONObject(i); if(StringUtil.isNullStr(jsonTemp.getString("name"))||StringUtil.isNullStr(jsonTemp.getString("position"))){
response(resp, getMsg(false, "参数为空", "10001"));
return;
}
}
}
// 接受参数校验
if (StringUtil.isNullStr(liveName) || StringUtil.isNullStr(masterUrl)||StringUtil.isNullStr(reason)) {
response(resp, getMsg(false, "参数为空", "10001"));
return;
}
//参数正常
try {
String result ="";
String change_source_url = ConfigUtil.getProperty("change_source_Url");
response(resp, getMsg(true, "请求成功", "99999"));
} catch (Exception e) {
e.printStackTrace();
}
} public JSONObject getResutltMap(HttpServletRequest req) {
String requestStr = "";
StringBuilder sb = new StringBuilder();
InputStream is = null;
BufferedReader dis = null;
try {
is = req.getInputStream();
dis = new BufferedReader(new InputStreamReader(is, "utf-8"));
String str = "";
while ((str = dis.readLine()) != null) {
sb.append(str);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (dis != null) {
dis.close();
}
if (is != null) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
requestStr = sb.toString();
try {
JSONObject json = JSON.parseObject(requestStr);
return json;
} catch (Exception e) {
}
return null;
} private String getMsg(boolean success, String msg, String errCode) {
Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("success", success);
returnMap.put("msg", msg);
returnMap.put("errCode", errCode);
String returnJson = JSON.toJSONString(returnMap);
return returnJson;
}
private void response(HttpServletResponse resp, String msg) {
try {
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.println(msg);
out.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}

post请求参数Json字符串包含数组的校验和处理 -工作随记-备查工具的更多相关文章

  1. post请求参数Json字符串包含数组的校验和处理

    传入参数类型 {"aaa":"aaaa","bbb":"bbb","ccc":"ccc&q ...

  2. json 字符串包含数组转换为object对象是报异常java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to

    前台传到后台的json字符串 前台实现这种格式json字符串方式: function contentFun(){ respType = respTypeFun(); return "{\&q ...

  3. wemall app商城源码中基于JAVA通过Http请求获取json字符串的代码

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.分享其中关于通过Http请求获取json字符串的代码供 ...

  4. 在OnActionExecuted 获取请求参数的值(包含类类型)

    1.在OnActionExecuting里 获取请求参数的值 比较简单 /// <summary> /// 获取首参数的值 /// </summary> /// <par ...

  5. android http post 请求与 json字符串

    一.目标 android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈. 1. 客户端发送的json格式为: {"data" : "valu ...

  6. AFNetworking 3.0 解决加密后请求参数是字符串问题

    把整个请求参数的json加密生成一个字符串传给服务器,错误提示:[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top ...

  7. ajax post 请求发送 json 字符串

    $.ajax({ // 请求方式 type:"post", // contentType contentType:"application/json", // ...

  8. php json字符串转为数组或对象

    从网上查到的方法是 用get_object_vars 把类类型转换成数组 然后在用foreach  遍历即可 $array = get_object_vars($test); $json= '[{&q ...

  9. PHP实现url参数组合字符串与数组相互转换

    $data = array( 'name' => 'tom', 'sex' => 1, 'channel' => 'ty' ); 数组转url参数字符串 $queryStr = ht ...

随机推荐

  1. Android Device Administration 设备管理器——实现一键锁屏

    Android Device Administration 设备管理器--实现一键锁屏 最近研究了一下安全这一块的内容,当然,我是比较水的,所以也拿不出什么好知识点,但是有一些冷门的东西我还是可以聊聊 ...

  2. Android的数字选择器NumberPicker-android学习之旅(三十七)

    我想说的话 今天晚上我依然在图书馆写博客,其实此刻我的没心激动而忐忑,因为明天就是足球赛的决赛,我作为主力球员压力很大,因对对方很强大,但是那又怎么样.so what...我不会停止写博客的 Numb ...

  3. React Native之Navigator

    移动应用很少只包含一个页面.从你添加第二个页面开始,就得考虑如何管理多个页面间的跳转了. 导航器正是为此而生.它可以管理多个页面间的跳转,也包含了一些常见的过渡动画,包括水平翻页.垂直弹出等等. Na ...

  4. ffmpeg转码器移植VC的工程:ffmpeg for MFC

    本文介绍一个自己做的FFMPEG移植到VC下的开源工程:ffmpeg for MFC.本工程将ffmpeg工程中的ffmpeg转码器(ffmpeg.c)移植到了VC环境下.并且使用MFC做了一套简单的 ...

  5. JAVA 继承基本类、抽象类、接口

    Java是一个面向对象的语言,java面向对象一般有三大特征:封装.继承.多态. 封装:就是把一些属性和方法封装到一个类里. 继承:就如子类继承父类的一些属性和方法. 多态:就如一个父类有多个不同特色 ...

  6. linux下重启weblogic(关闭和启动)

     ssh远程连接Linux服务器! 开启weblogic: 1.找到/Oracle/Middleware/user_projects/domains/用户_domain目录, 2.执行nohup ...

  7. Socket编程实践(9) --套接字IO超时设置方法

    引:超时设置3种方案 1. alarm超时设置方法 //代码实现: 这种方式较少用 void sigHandlerForSigAlrm(int signo) { return ; } signal(S ...

  8. Linux IPC实践(4) --System V消息队列(1)

    消息队列概述 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法(仅局限于本机); 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值. 消息队列也有管道一样的不足:  ...

  9. Rust语言之HelloWorld

    Rust语言之HelloWorld 参考文档: http://doc.crates.io/guide.html 1 什么是Cargo 相当于maven/ant之于java, automake之于c, ...

  10. DataLoad命令

    Dataload常用命令 Dataload命令符 说明 Tab  或\{tab} 键盘Tab键,下一个单元 *UP  或\{UP} 键盘上 *DN  或\{DOWN} 键盘下 *LT  或\{LEFT ...