Java解析POST提交的json資料工具類
阿新 • • 發佈:2018-12-29
工具類用於解析通過網路傳輸json資料的引數
controller中的使用import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONObject; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import com.dianping.cat.Cat; /* * 解析POST提交的json資料工具類 */ public class RequestUtil { private static Logger log = Logger.getLogger(RequestUtil.class); /** * 解析request的輸入流 * @param request * @return 請求的json字串 */ public static synchronized String getRequestBody(HttpServletRequest request) { String str = null; try { str = IOUtils.toString(request.getInputStream()); } catch (IOException e) { log.info(e.getMessage()); Cat.logError(e); e.printStackTrace(); } return str; } /** * 解析request的json資料 * @param request * @return Map */ public static synchronized Map<String, Object> parseRequest( HttpServletRequest request) { Map<String, Object> map = new HashMap<String, Object>() ; try { String req = getRequestBody(request); if(StringUtilsExtends.isNotBlank(req)){ JSONObject jsonObject = JSONObject.fromObject(req); for (Iterator iter = jsonObject.keys(); iter.hasNext();) { String key = (String) iter.next(); map.put(key, jsonObject.get(key)); } } log.info(map); } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); Cat.logError(e); } return map; } /** * 獲取map的value * @param map * @param key * @return */ public static Object getRequestBodyValue( Map<String, Object> map, String key) { if (map != null && StringUtils.isNotBlank(key) && map.containsKey(key)) { return map.get(key); } return null; } }
@Controller public class userController { private Logger log = Logger.getLogger(this.getClass()); @RequestMapping(value="/getUser",method=RequestMethod.POST) @ResponseBody public String getSipAccount(HttpServletRequest req){ try { Map<String, Object> paramMap = RequestUtil.parseRequest(req); String userName = (String) RequestUtil.getRequestBodyValue(paramMap, "userName"); //do something } catch (Exception e) { e.printStackTrace(); } return userName; } }