【发布时间】:2020-10-22 05:09:48
【问题描述】:
所以我正在努力寻找解决这个问题的方法,我目前在前端有一个函数,它依赖于后端的错误消息。这个错误部分总结如下:
HashMap<Long, Integer> serviceListResponse = new HashMap<>();
...
if (!serviceListResponse.isEmpty()) {
throw new IllegalArgumentException(String.valueOf(serviceListResponse));
}
所以我认为这应该可以直接解析:
$log.info(JSON.stringify(errorResponse.data.message))
log message = "{16=2140002475, 17=2140002724, 18=2140002116, 8=2140034827}"
$scope.listOfIds = JSON.parse(errorResponse.data.message);
但是它似乎没有通过 JSON.parse 并因此在该特定行结束。我之前对 ArrayLists 使用过 JSON.parse 并且没有任何问题,那么我做错了什么?谢谢。
【问题讨论】:
-
您的问题在于
String.valueOf(serviceListResponse),它返回{16=2140002475}字符串,因为JSON=运算符不可识别,它需要:,如key:value中的那样解析字符串。您可以使用JacksonObjectMapper.writeValueAsString()。 fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/… -
@Zedex7 有没有我可以在前端做到这一点?
-
绝对可以,但不推荐。这是 JS Snippet 如何做到这一点
"{16=123445}".replace('=',':')->"{16:123445}"