SpringBoot将String返回为JSON

siotufzp  于 2023-08-02  发布在  Spring
关注(0)|答案(4)|浏览(152)

我有一个方法,它以String形式返回完全格式化的JSON,ex { type:“",List 1:[]...}我试图以浏览器将其解释为JSON(Firefox)的方式返回。我试着指定它产生=“text/plain”,但没有成功。我不能把它放在 Package 类中,因为它已经格式化了。
我尝试指定produces=“text/plain”和@ResponseBody。没有运气,仍然解释为文本,而不是JSON。
edit:为了我的目的,使用produces=MediaType.APPLICATION_JSON_VALUE是可行的。

@GetMapping(value="/v1/Count", produces="text/plain"
@ResponseBody
public String getCount(@RequestParam...) {
   return "{type: "", List1: []...}";
}

字符串

qyuhtwio

qyuhtwio1#

尝试将注解@RequestMapping中的produces指定为application/json,这将有助于您。举例来说:

@RestController
public class TestController {

    @GetMapping(path = "/test", produces = MediaType.APPLICATION_JSON_VALUE) // equals 'produces = "application/json"'
    public ResponseEntity<String> test() {
        return ResponseEntity.ok("{}"); // put your string here
    }
}

字符串

plupiseo

plupiseo2#

你可以试试这些东西:
1.用produces=MediaType替换produces=text/plain。APPLICATION_JSON_VALUE
1.使用@RestController而不是@Controller,然后删除@ResponseBody

li9yvcax

li9yvcax3#

要显式控制返回类型,请将其 Package 在ResponseEntity中,并指定其内容类型。

@GetMapping(value="/v1/Count", produces="text/plain"
@ResponseBody
public ResponeEntity<String> getCount(@RequestParam...) {
   return ResponseEntity.ok()
           .contentType(MediaType.APPLICATION_JSON)
           .body("{type: "", List1: []...}");
}

字符串
这将使用您提供的实际内容类型,而不是试图从方法的返回类型推断它。

vdgimpew

vdgimpew4#

尝试使用products =MediaType.APPLICATION_JSON_VALUE。例如,用以下方法注解您的控制器方法:

@GetMapping(value="/path", produces=MediaType.APPLICATION_JSON_VALUE)

字符串

相关问题