如何使用 RestTemplate 从 GitHub public 存储库中读取 JSON 文件内容?
How to read a JSON file content from GitHub public repository using RestTemplate?
我需要使用 RestTemplate 读取 public GitHub 存储库中 JSON 文件的内容。这个 JSON 文件的内容经常变化,所以我需要每周从这个文件中提取一次数据。我只需要将内容作为 String 对象获取。有办法吗?
JSON 文件在 public GitHub 存储库中的示例:JSON_File
使用RestTemplate,可以这样实现
String fortune500String = restTemplate.getForEntity
("https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/fortune500.json", String.class);
这将 return 类型为 String
的 ResponseEntity
,您可以调用其中的 getBody()
来获取字符串。
这就是您所要求的,但我认为还有更好的方法。我假设数据本身是唯一发生变化的东西,而不是结构。鉴于此假设,创建一个表示数据的模型,如下所示:
@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 return 成为模型的一个实例,这样你会更容易使用。
Fortune500 fortune500 = restTemplate.getForEntity
("https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/fortune500.json", Fortune500.class).getBody();
我需要使用 RestTemplate 读取 public GitHub 存储库中 JSON 文件的内容。这个 JSON 文件的内容经常变化,所以我需要每周从这个文件中提取一次数据。我只需要将内容作为 String 对象获取。有办法吗?
JSON 文件在 public GitHub 存储库中的示例:JSON_File
使用RestTemplate,可以这样实现
String fortune500String = restTemplate.getForEntity
("https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/fortune500.json", String.class);
这将 return 类型为 String
的 ResponseEntity
,您可以调用其中的 getBody()
来获取字符串。
这就是您所要求的,但我认为还有更好的方法。我假设数据本身是唯一发生变化的东西,而不是结构。鉴于此假设,创建一个表示数据的模型,如下所示:
@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 return 成为模型的一个实例,这样你会更容易使用。
Fortune500 fortune500 = restTemplate.getForEntity
("https://raw.githubusercontent.com/dariusk/corpora/master/data/corporations/fortune500.json", Fortune500.class).getBody();