我正在嘗試使用以下請求主體向我的 API 發出 POST 請求:
{
"data": [
{
"source": "A",
"target": "B",
"distance": 10
},
{
"source": "A",
"target": "C",
"distance": 15
}
]
}
和
{?
"data": [
{?
"source": "A", "target": "B", "distance": 6
}?,
{?
"source": "A", "target": "E", "distance": 4
}
]
}
第一個有效,但第二個無效,并回傳以下錯誤:
"message": "JSON parse error: Unexpected character ('?' (code 8203 / 0x200b)): was expecting double-quote to start field name; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('?' (code 8203 / 0x200b)): was expecting double-quote to start field name\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 5]"
那是我的控制器的 POST 功能:
@PostMapping()
public ResponseEntity<Graph> saveGraph(@RequestBody Graph graph){
System.out.println(graph);
Graph obj = graphService.saveGraph(graph);
return ResponseEntity.status(HttpStatus.CREATED).body(obj);
}
這是為什么?
uj5u.com熱心網友回復:

洗掉第二個 JSON 示例中存在的四個零寬度字符應該可以解決錯誤,無論是手動還是通過正則運算式運行 JSON 示例以0x200b在使用 Jackson 決議之前去除值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/471501.html
