我已經在Spring Boot中構建了一個REST服務,它接受JSON
被POST
編輯到端點。我使用json-schema-validator
驗證了JSON
POST
版本與JSON
架構。出現驗證錯誤時,我會在JSON
中收到錯誤消息。我想將錯誤消息發送回JSON
中的客戶端。我遇到的問題是,我在自己的JSON
對象中收到每條錯誤消息。這不是一個問題,它只有一個錯誤消息,但是如果有多個錯誤,我希望只有一個帶有所有錯誤消息的JSON
消息。目前,我在ProcessingReport
對象中收到錯誤消息。遍歷ProcessingReport
我可以得到每個ProcessingMessage
,我可以將其轉換爲JSON
。創建JSON對象的JSON列表
for(ProcessingMessage message : report) {
message.asJson();
}
每個錯誤消息是這樣的:
{
"level": "error",
"schema": {
"loadingURI": "#",
"pointer": "/properties/parameterDateAdjusted"
},
"instance": {
"pointer": "/parameterDateAdjusted"
},
"domain": "validation",
"keyword": "format",
"attribute": "date-time",
"message": "string \"2017-02-29T23:59:00Z\" is invalid against requested date format(s) [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z]",
"value": "2017-02-29T23:59:00Z",
"expected": [
"yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z"
]
}
我想有多個錯誤消息看起來像這樣:
{
"error": 1,
"message": {
"level": "error",
"schema": {
"loadingURI": "#",
"pointer": "/properties/parameterDateAdjusted"
},
"instance": {
"pointer": "/parameterDateAdjusted"
},
"domain": "validation",
"keyword": "format",
"attribute": "date-time",
"message": "string \"2017-02-29T23:59:00Z\" is invalid against requested date format(s) [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z]",
"value": "2017-02-29T23:59:00Z",
"expected": [
"yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z"
]
},
"error": 2,
"message": {
"level": "error",
"schema": {
"loadingURI": "#",
"pointer": "/properties/parameterDateUnadjusted"
},
"instance": {
"pointer": "/parameterDateUnadjusted"
},
"domain": "validation",
"keyword": "format",
"attribute": "date-time",
"message": "string \"2010-11-31T00:00:00Z\" is invalid against requested date format(s) [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z]",
"value": "2010-11-31T00:00:00Z",
"expected": [
"yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z"
]
}
}
什麼是這樣做的最佳途徑?我可以創建一個List
的JSON
對象,如List<Jsonnode>
,並將其轉換爲一個Jsonnode
?或者是我可以連接JSON
錯誤消息的方式?
您是否已經嘗試在您的方法中返回'List'並查看會發生什麼? –