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);
}
servlet接收request请求的json数据的更多相关文章
- 微信小程序wx.request请求服务器json数据并渲染到页面
[原文出自]: https://blog.csdn.net/weixin_39927850/article/details/79766259 微信小程序的数据总不能写死吧,肯定是要结合数据库来做数据更 ...
- MVC Control 接收post请求的json数据
[HttpPost] public string QueryInvoice() { string stream; using (var sr = new StreamReader(Request.In ...
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
作者:ssslinppp 时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- PHP/Post 提交请求获取json数据,并转化为所需要的数组
/** * Post 提交请求获取json数据,并转化为所需要的数组 */ function request_post($url = '', $param = '') { if (empty($url ...
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
- 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法
在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...
- 【VueJS】VueJS开发请求本地json数据的配置
VueJS开发请求本地json数据的配置,旧版本是build/dev-server.js,新版本是build/webpack.dev.conf.js. VueJS开发请求本地json数据的配置,早期的 ...
- Nginx下HTML页面POST请求静态JSON数据返回405状态
在浏览器访问HTML页面,发现一些静态JSON数据没有显示,F12查看,如下图所示: 可以看到请求方式为POST 将请求链接复制在浏览器地址栏访问,可以正常请求到数据 F12查看,可以看到请求方式为G ...
随机推荐
- python Six 模块
Six模块用于python2和python3的兼容 import six 官网链接:https://six.readthedocs.io/
- POJ - 2774~POJ - 3415 后缀数组求解公共字串问题
POJ - 2774: 题意: 求解A,B串的最长公共字串 (摘自罗穗骞的国家集训队论文): 算法分析: 字符串的任何一个子串都是这个字符串的某个后缀的前缀. 求 A 和 B 的最长 公共子串等价于求 ...
- js 实现vue—引入子组件props传参
参考:https://www.cnblogs.com/xiaohuochai/p/7388866.html 效果 html <!DOCTYPE html> <html> < ...
- linux普通用户无法登录mysql
一.前言 本帖方法只适用于普通用户无法登录,但root用户可以登录的情况. 今天将war包放入linux后,运行报错,经过检查发现是数据库连接不上.奇怪的是,用户名和密码都是正确的,所以有了以下发现. ...
- Android开发 ShapeDrawable详解
前言 ShapeDrawable一开始我以为它是对应xml文件属性里的shape的画图,后来发现我错了... 其实ShapeDrawable更像是一共自由度更大跟偏向与实现draw()方法的一共图像绘 ...
- 【NOI2010】能量采集
题面 题目分析 对于第\((i,j)\)个位置,对答案的贡献为\(2*gcd(i,j)-1\). 所以有\(ans=2*\sum\limits_{i=1}^n\sum\limits_{j=1}^mgc ...
- Linux中要重启apache服务与在windows是有很大的区别,下面我们来介绍一下
在Linux中要重启apache服务与在windows是有很大的区别,下面我们来介绍一下常用的命令,需要的朋友参考下吧(http://www.hnkjlb.com) linux系统为Ubuntu 一. ...
- CSS3如何实现圆圈转圈,附demo
如图,如何实现圆圈转圈? 主要还是CSS3动画(只兼容了谷歌,需要兼容其它浏览器,加前缀即可) .move1 { animation: myMove1 5s ease-in infinite alte ...
- MYSQL获取同时关注了某两个(或者N个)用户的用户
使用redis的set类型数据的话会比较容易,但是业务场景就是在mysql里面,因此也需要思考解决方法 表结构: CREATE TABLE `table_name` ( `id` ) unsigned ...
- springboot thymeleaf ----服务端渲染html
一. 引用命名空间 <html xmlns:th="http://www.thymeleaf.org"> 不这么写 html标签没闭合会报错 二.实际内容在../sta ...