我的天 !上一篇写的文章直接调用了第三方历史数据接口,原本以为大功告成!还在暗自庆幸~~~~~~妹的今天 按时区查询的时候死活都查不出数据!!
蛋疼啊!问了第三方的技术说是他们的历史数据接口只保存50条数据!尼玛啊,只保存50条数据叫什么历史数据接口啊?提供什么查询条数,时间参数啊!这不是明摆着坑人嘛。。。无奈之下我只能再次去请求他们的日志接口了返回的一堆字符串~~。
差点有掉坑里了 ,有时候往往很简单你的问题会想复杂,陷入一个死循环 好了说说我的解决方案吧:
写了一个简单的正则表达式解决了问题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
/** * 请求日志接口 * @param request * @param response * @return */ @RequestMapping(params = "chartslogData") @ResponseBody public AjaxJson chartslogData(HttpServletRequest request, HttpServletResponse response) { String deveui = request.getParameter("deveui"); AjaxJson ajson=new AjaxJson(); JSONArray rmap = new JSONArray(); try { String url="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; String jwt = (String) request.getSession().getAttribute("jwt"); String s = doGetString(url, jwt); //可以得到的内容 String regx="\\{(.+?)\\}\\}"; String regtime="([0-9]{1,2}:[0-9]{1,2})(:[0-5]{0,1}[0-9]{1})";//匹配返回字符串的时间 Pattern p = Pattern.compile(regx); Matcher m = p.matcher(s); Pattern p1 = Pattern.compile(regtime); Matcher m1 = p1.matcher(s); JSONArray jsonArray = new JSONArray(); JSONArray jsonArraytime = new JSONArray(); JSONObject jsobj=new JSONObject(); while(m.find()){ jsonArray.add(m.group()); } while(m1.find()){ jsonArraytime.add(m1.group()); } if(jsonArray.size()>0){ for(int i=0;i<jsonArray.size();i++){ JSONObject po=new JSONObject(); String de = (String)jsonArray.get(i); JSONObject job = JSONObject.parseObject(de); JSONObject payload = (JSONObject)job.get("Payload"); String rs485Payload = (String)payload.get("rs485Payload"); String time = (String)jsonArraytime.get(i); Map<String, Object> transformation = VibrationTemperatureSensorController.transformation(rs485Payload);//解码 Object zd = transformation.get("zd");//震动 Object tm = transformation.get("tm");//温度 po.put("zd1",zd); po.put("tm1",tm); po.put("dateTime1",time); // po.put("dateTime1",formatdate); rmap.add(po); } } //用户保存的作用域 ajson.setSuccess(true); ajson.setObj(rmap); ajson.setMsg("获取数据成功"); return ajson; } catch (Exception e) { e.printStackTrace(); ajson.setSuccess(false); ajson.setMsg("获取数据失败"); } return ajson; } |