簡體   English   中英

如何使用 RestTemplate 從 GitHub 公共存儲庫讀取 JSON 文件內容?

[英]How to read a JSON file content from GitHub public repository using RestTemplate?

我需要使用 RestTemplate 讀取公共 GitHub 存儲庫中 JSON 文件的內容。 這個 JSON 文件的內容經常變化,所以我需要每周從這個文件中提取一次數據。 我只需要獲取字符串 object 的內容。有沒有辦法做到這一點?

公共 GitHub 存儲庫上的 JSON 文件示例: JSON_File

使用RestTemplate,可以這樣實現。

String fortune500String = restTemplate.getForEntity
   ("https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/fortune500.json", String.class);

這將返回類型為StringResponseEntity ,您可以調用其中的getBody()來獲取字符串。

這就是你所要求的,但我認為有更好的方法。 我假設數據本身是唯一發生變化的東西,而不是結構。 鑒於此假設,創建一個表示數據的 model,如下所示:

@Data
public class Fortune500 {
  private String description;
  private List<String> companies;
}

然后配置RestTemplate能夠從text/plain的內容類型進行轉換

RestTemplate restTemplate = new RestTemplate();
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(List.of(MediaType.TEXT_PLAIN));
restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter);

然后你可以讓 RestTemplate 返回一個 model 的實例,這對你來說會更容易使用。

Fortune500 fortune500 = restTemplate.getForEntity
    ("https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/fortune500.json", Fortune500.class).getBody();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM