【问题标题】:How to loop through JSON response in Spring MVC Controller如何在 Spring MVC 控制器中循环 JSON 响应
【发布时间】:2015-12-17 13:41:28
【问题描述】:

我想在控制器中使用 JSON 响应。我正在调用一个返回 JSON 的方法。请参阅下面的代码。请问如何循环访问控制器内部返回的 Json 对象。我需要使用控制器中的其他方法向电子邮件地址发送邮件等属性。

我的返回 JSON 的方法:

@ResponseBody
private ResponseEntity<?> queryIsw(String ref, String amt) throws Exception{
    String pdtid = "62";
    String salt = "D3D1D05AFE42AD50818167EAC73C109168A0F108";
    RestTemplate restt = new RestTemplate();
    String uri = "https://bestng.com/gettransaction.json";
    MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
    params.add("productid", pdtid);
    params.add("transactionreference", ref);
    params.add("amount", amt);
    UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(uri).queryParams(params).build();
    URI oro = uriComponents.toUri();
    HttpHeaders hea = new HttpHeaders();
    String hs = pasher(pdtid, ref, salt);
    hea.add("hash", hs);
    HttpEntity<String> hent = new HttpEntity<String>(hea);

    ResponseEntity<Object> resp =  restt.exchange(oro, HttpMethod.GET, hent, Object.class);     

    return resp;

}

下面是我从另一个方法调用上面这个方法:

ResponseEntity<?> dres = queryIsw(dref,ama);

请解释我如何使用控制器中返回的“dres”属性。

谢谢

【问题讨论】:

    标签: java json spring rest spring-mvc


    【解决方案1】:

    尝试查看 Jackson JSON 到 Java 映射工具,特别是 ObjectMapper。它可以将格式正确的 JSON 字符串转换为对象层次结构,您可以从中提取所需的数据。 Jackson 是此活动的常用工具。查看教程了解更多详情:

    http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

    如果您需要更多帮助,请提出。

    【讨论】:

      【解决方案2】:

      我假设它将在 ResponseEntity 的主体中返回。

      试试:

      String body = dres.getBody();
      

      您可以使用可以将该字符串解析为 json 对象的东西。比如:

      JSONObject jObject  = new JSONObject(body);
      

      见:

      http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/ResponseEntity.html

      Java String to JSON conversion

      【讨论】:

      • 我在使用 maven 添加 JSON-LIB 时遇到问题。我从下面的链接中获得了有关如何执行此操作的信息,并为我解决了它。:stackoverflow.com/questions/4173214/…。谢谢
      • 很高兴它成功了!如果我的回答对您有所帮助,您介意将其标记为已接受吗? @FemiAdigun
      猜你喜欢
      • 1970-01-01
      • 2014-09-21
      • 2017-05-03
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2012-12-15
      • 2013-01-11
      相关资源
      最近更新 更多