我必须使用 GET 请求的查询参数从 URL 读取 JSON 值。 我在 Spring Boot 项目中使用最新的 Tomcat。
@RequestMapping(
value = "/values",
method = RequestMethod.GET,
headers = HttpHeaders.ACCEPT + "=" + MediaType.APPLICATION_JSON_VALUE,
produces = "application/json")
public ResponseEntity<String> myMethod(
@RequestParam(value="key") String jsonRequestString) {
//parse JSONString
//--
}
对 URL 的 GET 请求
网址:- http://localhost:port/values?key={"org":"AA","points":[{"name":"xy","Measures":"343"}]}]
抛出 java.lang.IllegalArgumentException:在请求目标中发现无效字符。有效字符在 RFC 7230 和 RFC 3986 中定义
编辑:- 以原始形式发送 JSON 会导致我无处可去,因此工作方法是以编码形式发送 JSON。
最佳答案
您可以将关键参数编码为 Base64 格式并附加到 URL,然后解码并在 Controller 方法中使用它。
关键 JSON 文本:
{"org":"AA","points":[{"name":"xy","Measures":"343"}]}]
Base64 编码文本:
eyJvcmciOiJBQSIsInBvaW50cyI6W3sibmFtZSI6Inh5IiwiTWVhc3VyZXMiOiIzNDMifV19XQ==
再次解码为 JSON 文本:
{"org":"AA","points":[{"name":"xy","Measures":"343"}]}]
关于java - 如何读取GET请求查询参数中的JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42902766/