起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7098|回复: 10

[用户待确认] 在后台定时采集,接收到JSON数据后,如何录入数据库

[复制链接]

105

主题

305

帖子

663

积分

高级会员

Rank: 4

积分
663
QQ
发表于 2019-8-9 13:10:28 | 显示全部楼层 |阅读模式
我需要从第三方平台定时读取数据(比如每天早上7:30分),

读取的方式使通过第三方提供的API接口(一个HTTP连接),请求成功返回JSON数据,如下图:

1.png

2.png


这样的话,后台如何提取多条数据,保存到数据库。

我对这方面不是很熟,牛刀云上找不到相关的说明文档,

麻烦指导一下,谢谢!

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2019-8-9 16:46:15 | 显示全部楼层
在服务中写java代码,可以参考《全栈开发手册》

做法如下:添加服务、添加请求、写代码
在java代码中调用第三方api,获得返回数据
遍历json,使用如下代码新建数据对象,赋值、保存

                  OA_CA_CarManage1 carManage = new OA_CA_CarManage1();
                  carManage.setFid(com.justep.util.RandomUtil.uuid());
                  carManage.setfNO(useCar.getfNO());
                  carManage.setfApplyDeptID(useCar.getfApplyDeptID());
                  carManage.setfApplyDeptName(useCar.getfApplyDeptName());;
                  carManage.setfApplyPsnID(useCar.getfApplyPsnID());
                  carManage.setfApplyPsnName(useCar.getfApplyPsnName());
                  carManage.setfApplyDate(useCar.getfApplyDate());
                  carManage.setfApplyReason(useCar.getfApplyReason());
                  carManage.setfPersonCount(useCar.getfPersonCount());
                  carManage.setfDestination(useCar.getfDestination());
                  carManage.setfTelephone(useCar.getfTelephone());
                  carManage.setfBeginTime(fBeginTime);
                  carManage.setfEndTime(fEndTime);
                  carManage.setfIsRoundtrip(useCar.getfIsRoundtrip());
                  carManage.setfDriveCircuit(useCar.getfDriveCircuit());
                  carManage.setfRemark(useCar.getfRemark());
                  carManage.setfIsFlow(1);
                  OA_CA_CarManage1Repository.save();      
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

105

主题

305

帖子

663

积分

高级会员

Rank: 4

积分
663
QQ
 楼主| 发表于 2019-8-9 17:40:24 | 显示全部楼层
本帖最后由 alex6168 于 2019-8-9 18:29 编辑
zhaixin 发表于 2019-8-9 16:46
在服务中写java代码,可以参考《全栈开发手册》

做法如下:添加服务、添加请求、写代码

我写代码的能力不强,所以打算用前端的 网络请求 组件,读取到返回的JSON数据,再把数据保存到动态数据集,这样估计会简单一点。
但 网络请求 的设置有点怪,如下图:
1.jpg


然后我添加了按钮调用网络请求,并填写了参数,如下图:
2.png


还是提示 按钮的 onClick引用的 sendRequest没有定义,如下图:


3.png


市场里有个高级网络请求,我引入使用,但结果都是一样。

请问这是为什么?
回复 支持 反对

使用道具 举报

105

主题

305

帖子

663

积分

高级会员

Rank: 4

积分
663
QQ
 楼主| 发表于 2019-8-9 21:24:01 | 显示全部楼层
第三方平台的 HTTP API 说明文档如下:

http://databus.gsdata.cn/apid/index?id=67990dc001909011fbef8739f900b349&nav=apis&cate=16

这里说明了 请求url,请求头参数, 业务级参数,返回值格式, 以及 API鉴权机制,麻烦帮忙看看,根据这些信息,网络请求 组件应该如何配置,返回的JSON数据该如何保存到数据库。
我这里已经设计了一个数据库,字段名称跟JSON数据的字段名一样,如下图所示:
1.png


那是否在 网络请求 成功事件中加载数据,目标设置为该动态数据集就可以了,如下图:
2.png


其实,我的需求跟下面这个贴很相似,但这个贴到后面,技术单独QQ联系处理了,也看不到最后怎样处理的,麻烦帮忙看看。
http://bbs.wex5.com/forum.php?mod=viewthread&tid=205462
回复 支持 反对

使用道具 举报

2

主题

441

帖子

2572

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2572
发表于 2019-8-10 12:34:58 | 显示全部楼层
这个需求建议使用后端定时服务组件,然后配合上服务逻辑来完成。
回复 支持 反对

使用道具 举报

105

主题

305

帖子

663

积分

高级会员

Rank: 4

积分
663
QQ
 楼主| 发表于 2019-8-12 12:44:09 | 显示全部楼层
sxl 发表于 2019-8-10 12:34
这个需求建议使用后端定时服务组件,然后配合上服务逻辑来完成。

我打算用 网络请求 组件,先在前端读取JSON数据,加载到动态数据集

现在问题就卡在 请求头 那里,如下图:

1.png


这个请求头应该写成:
{"access-token":"value"}

还是写成:
"access-token":"value"

但我试过各种格式,都是返回错误代码,如下图:
2.png


请问是哪里出错了吗?


回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2019-8-13 09:55:02 | 显示全部楼层
请求不成功的原因是在https中不能调用http请求,从市场中下载“高级网络请求组件一小程序”,使用这个组件调用http请求,请求成功后,再说如何加载数据
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

105

主题

305

帖子

663

积分

高级会员

Rank: 4

积分
663
QQ
 楼主| 发表于 2019-8-13 19:06:41 | 显示全部楼层
zhaixin 发表于 2019-8-13 09:55
请求不成功的原因是在https中不能调用http请求,从市场中下载“高级网络请求组件一小程序”,使用这个组件 ...

对的,使用 高级网络请求组件 就成功了,如下图所示:

1.png



返回 状态码 是 “success”,返回的数据是一个object,应该是JSON数据。


查看第三方平台的文档,返回的JSON数据格式如下图所示:
2.png



建立了一个 动态数据集,字段名称和JSON数据中我所需要key的名称是一样的,数据结构如下图:
3.png



在 网络请求 请求成功 事件中,我把JSON数据加载给动态数据集,设置如下图:
4.png



然后我通过 动态列表 显示该动态数据集的数据,但没有数据显示出来。


我记得 网络请求组件 的视频教学中,曾经提到,如果动态数据集和JSON的字段名称一致,就可以这样直接把JSON的数据,加载数据到动态数据集的。

请问这里哪里出错了吗?



回复 支持 反对

使用道具 举报

105

主题

305

帖子

663

积分

高级会员

Rank: 4

积分
663
QQ
 楼主| 发表于 2019-8-19 15:42:56 | 显示全部楼层
zhaixin 发表于 2019-8-13 09:55
请求不成功的原因是在https中不能调用http请求,从市场中下载“高级网络请求组件一小程序”,使用这个组件 ...

现在网络请求已经成功了,返回了JSON的数据对象,那请问如何把数据加载到动态数据集中呢?
回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2019-8-22 11:30:18 | 显示全部楼层
将请求返回的结果中的数组加载到数据集中

加载数据操作中的数据参数,要传入“请求成功.请求成功事件返回值.data.list”
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 12:37 , Processed in 0.101006 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表