如何让spring返回json作为一个字符串而不是json-ified自动化

时间:2015-01-19 07:25:18

标签: java json spring spring-mvc

在早期post的基础上,我创建了一个如下所示的网络服务:

@RequestMapping(value = "/getFoo", method = RequestMethod.GET, produces = org.springframework.http.MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
@Cacheable(value = "foo")
    public ResponseEntity<String> getFoo(
            @RequestParam(value = "fooId", defaultValue = "") String fooId )
 {
        if (fooId.isEmpty() ) {
            return new ResponseEntity<String>(HttpStatus.BAD_REQUEST);
        }

        HugeValue foo = delivery.getHugeValue(fooId);

        ObjectMapper mapper = new ObjectMapper();
        String json = "";
        try {
            json = mapper.writeValueAsString(foo);
        } catch (JsonProcessingException e) {
          return new ResponseEntity<String>(HttpStatus.NOT_FOUND);
        }

        return new ResponseEntity<String>(json, HttpStatus.OK);
    }

mapper.writeValueAsString(foo)部分有效,但说实话我不喜欢现在的方法;-) 我之所以选择这种方法,是因为JSON不需要在放入缓存后再次生成(这是我的主要目标,因为JSON非常大,我想节省CPU时间)

你知道我的方法的替代方案吗?我不喜欢我当前的方法,因为它不再基于从对象到JSON spring的“自动”编组通常提供的。现在我与杰克森联系在一起,我想让它更通用。我使用spring boot 1.2和spring 4.1

0 个答案:

没有答案