servlet接收request请求的json数据

匿名 (未验证) 提交于 2019-12-03 00:02:01

此次使用的是alibaba的fastjson:jar包为fastjson-1.2.7.jar

参考:https://www.qingtingip.com/h_229797.html

思路:由于此次接收到的json数据格式为:{"list":[{"tHumidity":0,"tLightIntensity":0,"tTemperature":0,"tSerialNumber":"02001"},{"..........]}

   即{key: value(value为数组)},需要先提取出value,value为JSONArray类型,再对value数组进行遍历,再通过强转为JSONObject

   从而对数组元素中的json的键值进行读取。

     JSONObject json= new JSONObject();         JSONArray list = new JSONArray();         BufferedReader br;         String jsonStr = null;         String jsonStr2 = null;         try {             br = new BufferedReader(new InputStreamReader((ServletInputStream) request.getInputStream()));             String line = null;             StringBuilder sb = new StringBuilder();              while ((line = br.readLine()) != null) {                 sb.append(line);             }             json= JSONObject.parseObject(sb.toString());             jsonStr = JSONObject.toJSONString(json);             list = json.getJSONArray("list");             jsonStr2 = JSONArray.toJSONString(list);           } catch (IOException e) {             e.printStackTrace();         }         System.out.println(json);         System.out.println(list);         //System.out.println(jsonStr.substring(0,jsonStr.length()-1));         // System.out.println(jsonStr);          System.out.println("======================");  //            List<MyClass> list = JSONObject.parseArray(jsonStr,  MyClass.class);         for (int i = 0; i < list.size();i++){             JSONObject object = (JSONObject)list.get(i); //            System.out.println(object);             Zhongyao zhongyao = new Zhongyao();             zhongyao.setId(UUIDUtil.uuid());             zhongyao.settSerialNumber(object.getString("tSerialNumber"));             zhongyao.settTemperature((object.getDouble("tTemperature") == null) ? 0 :object.getDouble("tTemperature"));             zhongyao.settHumidity((object.getDouble("tHumidity") == null) ? 0 : object.getDouble("tHumidity"));             zhongyao.settLightIntensity((object.getDouble("tLightIntensity") == null) ? 0 : object.getDouble("tLightIntensity"));             zhongyao.settSoilTemperature((object.getDouble("tSoilTemperature") == null) ? 0 :object.getDouble("tSoilTemperature"));             zhongyao.settSoilHumidity((object.getDouble("tSoilHumidity") == null) ? 0 : object.getDouble("tSoilHumidity"));             zhongyao.settSoilPh((object.getDouble("tSoilPh") == null) ? 0 : object.getDouble("tSoilPh"));             //(json.getDouble("tSoilPh") == null)             System.out.println("+++++++++++++id:"+zhongyao.getId()+"tSerialNumber:"+zhongyao.gettSerialNumber()+                     "tTemperature:"+zhongyao.gettTemperature()+"tHumidity:"+zhongyao.gettHumidity()+"tLightIntensity:"+zhongyao.gettLightIntensity()                     +"tSoilTemperature:"+zhongyao.gettTemperature()+"tSoilHumidity:"+zhongyao.gettHumidity()+"tSoilPh:"+zhongyao.gettSoilPh());             // }              //4. 调用Service保存             DataService service = new DataServiceImpl();             service.addData(zhongyao);         }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!