我不确定为什么会发生这种情况。我对spring boot
rest控制器的返回语句如下所示
return ResponseEntity.status(HttpStatus.OK).body("Successfully added");
现在在swagger UI
上,我看到如下响应
can't parse JSON. Raw result:
Successfully added
为什么会发生这种情况?
发布于 2020-05-21 08:52:03
这个游戏很晚了,但我会分享我对这个问题的解决方案,因为它是我最近开发的一个基于Python Flask的REST后端。如果您的问题与我的类似,那么您可以在您的JSON中包含Python值,尽管是在NaN中。
我的基本问题
我也得到了“无法解析JSON”的夸张的一面。事实证明,Python的标准库JSON导入将允许“现代的”但不是官方的json
类型,例如"NaN“。用浮点数和voila...As做一些计算,一个严格的解析器在NaN这样的类型下会失败,值得检查一下你的请求JSON响应中没有这些。
用一个编码器类解决了这个问题
虽然不是特定于Java的答案,但也许我的Python解决方案可以帮助您解决这个问题。
json.dumps(yourdata, cls=NumpyEncoder)
其中NumpyEncoder
是将JSON值转换为NaN
和/或您可接受的规范的类。可能的情况是,您也可以在代码中包含一些编码器类来删除NaN和/或其他工件。
有关Python实现的详细信息,请参阅我的so answer。
发布于 2019-07-11 03:49:39
如果没有看到更多的代码和实际的Swagger JSON,很难说,但JSON似乎有一个语法问题。通过JSON验证器运行它以进行确认。如果你在谷歌上搜索一下,有很多这样的网站。
发布于 2021-06-27 15:07:20
这是因为您返回的是字符串文字,而不是JSON对象。我假设您的返回类型应该是RepsonseEntity<String>
,但这不会起作用,您需要在主体中指定一个对象。您可以创建一个POJO来为您保存消息,如下所示:
public class YourResponseClass {
private String message;
//Constructors, getter and setter
}
然后在返回时,您需要将返回类型更改为RepsonseEntity<YourResponseClass>
,然后返回您的响应:
return ResponseEntity.ok(new YourResponseClass("Successfully Added."));
https://stackoverflow.com/questions/56977658
复制相似问题