从RestTemplate.getForObject(...)获取JSONArray

时间:2017-12-05 16:39:07

标签: java spring-boot

我有一些Spring Boot应用程序(作为微服务),每个应用程序都有一个Repository,如:

@RepositoryRestResource(collectionResourceRel = "cart", path = "cart")
@CrossOrigin
public interface CartRepository extends PagingAndSortingRepository<Cart, Long> {

当我保存“Cart”实体时,@RepositoryEventHandler类将实体作为json字符串发送到Apache Kafka主题:

@HandleAfterCreate
public void handleAfterCreate(final Cart cart) throws JSONException, JsonProcessingException {
    final JSONObject json = new JSONObject(mapper.writeValueAsString(cart));
    json.put("eventType", "saved");
    sender.send(json.toString());
}

最后,另一个Spring Boot应用程序消耗了Kafka的主题。 在这里,我通过在其他微服务器上调用RestTemplate.getForObject(...)来获取一些相关信息。

String templateURL="http://localhost:6060/api/cart/{id}/articles";
Map<String, Long> parameters = new HashMap<>();
parameters.put("id", cartId);
String result = restTemplate.getForObject(templateURL, String.class, parameters);
JSONObject obj = new JSONObject(result);

obj包含以下内容:

{"_embedded":{"articles":[{"id":1},{"id":2}]},"_links":{"self":{"href":"http://localhost:7074/api/cart/1/articles"}}}

但是我找不到从json那里得到所有文章的方法。

我尝试过:

Object articles = obj.get("articles");

但它不起作用。我已经看过其他答案,如this或类似,但我可以解决我的问题。

那么,如何通过RestTemplate从RepositoryRestResource获取JSONArray?

由于

0 个答案:

没有答案