HoneyMoose
  • 首页
  • Java
  • Jersey
  • Jira
  • Confluence
  • U.S.
    • Real Estate
    • U.S. Travel
    • H1B
  • 项目和网站
    • CWIKI.US
    • OSSEZ 社区
    • WIKI.OSSEZ.COM
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
BLOG.OSSEZ.COM
A responsive blog theme focused om user reading experience
  1. Home
  2. Computer Science
  3. Spring
  4. This article

Srping RestTemplate 将 Web 上的 JSON 数据快速本地实例化

2020年04月16日 159Browse 0Like 0Comments

在很多平常的数据收集和挖掘过程中,我们可能希望将网络上的 JSON 数据库快速获取并且插入到本地数据库中。

通常方法就是将 JSON 数据下载,然后对 JSON 数据库进行处理,然后保存。

Spring 有没有提供什么快速的方法进行处理?

 


 

其实 Spring 提供了一个 RestTemplate 可以完成数据下载,并且进行在内存中进行对象的转换。

有关 RestTemplate 的 API ,你可以参考 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html 中的内容。

这里我们使用的是 exchange 进行的转换。

例如, 我们希望将 https://covidtracking.com/api/v1/states/current.json 中的数据存入到我们的本地数据库中。

我们就可以使用提供的 exchange 方法。

首先我们需要定义:Covid19Current 对象,这个对象必要重要,首先这个对象是 JPA 的对象,同时这个对象也映射了 JSON 数据中的字段。

如果你不希望这样映射的话,那么你需要进行字段的转换。

请参考 :https://github.com/ossez-com/covid-19/blob/master/covid-19-common/src/main/java/com/ossez/covid19/common/models/Covid19Current.java 文件中,我们定义的字段内容。

然后你就可以使用下面的代码进行数据转换和映射:

        ResponseEntity<Covid19Current[]> responseEntity = restTemplate.exchange("https://covidtracking.com/api/v1/states/current.json",
                HttpMethod.GET,
                null,
                Covid19Current[].class);
        Covid19Current[] covid19Currents = responseEntity.getBody();

请注意,我们这里使用的 Get 方法,然后将数据转换到对象 Array 中。

具体方法,请参考:https://github.com/ossez-com/covid-19/blob/master/covid-19-service/src/main/java/com/ossez/covid19/service/batch/tasklet/Covid19Tasklet.java

 

https://www.cwiki.us/display/SpringBootZH/questions/57939087

Tags: None
Last updated:2020年04月16日

Kratos

stay absorbed stay excellent

Like
< Previous
Next >

Comments

Cancel reply

Newest Hotspots Random
Newest Hotspots Random
Discourse 主题和回复的日期如何查看 Discourse 如何查看主题的查看数量 Confluence 删除的页面会完全删除吗 Confluence 7 删除页面和子页面 DITA 已死 Java 线程暂停的简单代码
AWS S3 使用 travis 编译的时候提示错误 Aws::S3::Errors::PermanentRedirectTravis 编译使用 JDK 的版本GPG 使用 Maven 签名后发送到中央仓库提示 Upload your public key and try the operationPackage 打包上传到中央仓库的时候提示 SCM URL missingMaven Package 如何使用 GPG 签名Node Sass does not 支持的版本错误
Apache HttpClient 使用 POST 方法 Confluence 6 home 目录 如何确定你的 Windows 平台上是否已经安装了 Python Confluence 6 虚拟文件和文件夹 相比华人,美国人更喜欢印度人吗 Python 学习一定用pycharm吗
Categories
  • Akka
  • Algorithm(算法)
  • AMQP
  • Angular
  • CI
  • Compile And CI
  • Computer Science
  • Confluence
  • DataBase
  • Gradle
  • H1B
  • Hibernate
  • IDE
  • Java
  • Jersey
  • Jira
  • MariaDB
  • PrestaShop
  • Real Estate
  • Spring
  • Spring Batch
  • U.S.
  • U.S. Travel
  • 我的小厨

COPYRIGHT © 2020 HoneyMoose. ALL RIGHTS RESERVED.

THEME CWIKIUS.CN MADE BY VTROIS