servlet接收request請求的json數據


此次使用的是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的鍵值進行讀取。

alibaba的json的pom依賴

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.60</version>
</dependency>
     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);
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM