Java 如何获取映射URL的JSON结果

Java 如何获取映射URL的JSON结果,java,spring,spring-mvc,spring-data,Java,Spring,Spring Mvc,Spring Data,假设我们有以下控制器 @Controller @RequestMapping("/Index") public class ControllerClass { @RequestMapping("/Result") @ResponseBody public List<Integer> result(){ List<Integer> result = new ArrayList<Integer>(); result.add(1);

假设我们有以下控制器

@Controller
@RequestMapping("/Index")
public class ControllerClass {

  @RequestMapping("/Result")
  @ResponseBody
  public List<Integer> result(){
     List<Integer> result = new ArrayList<Integer>();
     result.add(1);
     result.add(2);
     return result;
  }
 }
@控制器
@请求映射(“/Index”)
公共类控制器类{
@请求映射(“/Result”)
@应答器
公开名单结果(){
列表结果=新建ArrayList();
结果.增加(1);
结果:增加(2);
返回结果;
}
}
现在我想将URL“/Index/result”的JSON结果存储到一个字符串中。或者简单地说,在应用注释后存储controller的JSON结果。请注意,它不是用于测试的,为此目的考虑的webservice问题。有什么想法吗?
提前感谢。

如果您的pom.xml中还没有jackson依赖项,我建议您将它们放在pom.xml中

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.2.3</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.3</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.2.3</version>
    </dependency>
您可以将Jackson's注入控制器,以手动将结果序列化为
JSON
,然后再通过返回


一切正常,我可以在浏览器中获得url的JSON结果。但是我想将控制器结果存储在java代码中,而不是在浏览器中。是否要将其打印到日志文件中?还是希望它持续到会话?你所说的“存储”Gson是什么意思Gson=new Gson();字符串jsonResponse=gson.toJson(结果);如果你想让我说得更清楚,我可以给你json字符串。我想将控制器的json结果作为webservice输出传递。该方法上面有四个注释,每个注释以不同的方式操作该方法的结果。这是一个工作的restful Web服务。你可以用restcontroller代替controller,controller是controller+responsebody的简写,但结果是sameI不理解你的问题。你想在哪里做这个?应用注释后是什么意思?谢谢。但问题是,我想将一个URL传递给servlet并获得JSON结果,而不向控制器或任何服务器端类添加任何内容。
@RequestMapping(value = "/Result", produces = "application/json;charset=utf-8")
@Configuration
public class Config {

     @Bean
     public ObjectMapper objectMapper() {
         // returning a plain ObjectMapper, 
         // you can change this to configure the ObjectMapper as requiered
         return new ObjectMapper();
     }
}


@Controller
@RequestMapping("/Index")
 public class ControllerClass {

   @Autowired
   private ObjectMapper objectMapper;

   @RequestMapping(value="/Result", 
                   method=RequestMethod.GET, 
                   produces="application/json")
   @ResponseBody
   public ResponseEntity<String> result(){
     List<Integer> result = new ArrayList<Integer>();
     result.add(1);
     result.add(2);
     String jsonResult = objectMapper.writer().writeValueAsString(result);
     // here you can store the json result before returning it;
     return new ResponseEntity<String>(jsonResult, HttpStatus.OK);
   }
}
@Component
public class RestResponseInterceptor implements HandlerInterceptor {

      public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
          // inspect response, etc...
     }
}