我不确定为什么会这样。我对spring boot
rest控制器的return语句如下所示
return ResponseEntity.status(HttpStatus.OK).body("Successfully added");
现在swagger UI
上,我看到如下响应
can't parse JSON. Raw result:
Successfully added
为什么会这样?
答案 0 :(得分:1)
晚于游戏,但将分享我对这个问题的解决方案,因为它在我最近开发的基于Python Flask的REST后端中浮出水面。如果您的问题类似于我的问题,即使在Python中,也可以在JSON中包含NaN值。
我也很快就得到了“无法解析JSON”。事实证明,Python的标准库json
导入将允许“现代”但非官方的JSON类型,例如“ NaN”。并使用float和voila进行一些计算...由于严格的解析器因NaN之类的类型而失败,因此需要检查您的请求JSON响应中是否没有这些。
尽管不是特定于Java的答案,也许我的Python解决方案可以帮助您解决问题。
json.dumps(yourdata, cls=NumpyEncoder)
NumpyEncoder
是将NaN
值转换为JSON和/或可接受的规范的某种类。可能也是这样,您也可以在代码中包含一些编码器类以删除NaN和/或其他工件。
有关Python实现的详细信息,请参见我的so answer。
答案 1 :(得分:0)
很难看到更多代码和实际的Swagger JSON,但似乎JSON存在语法问题。通过JSON验证程序运行它以进行确认。如果您使用Google,则有很多网站。
答案 2 :(得分:0)
发生这种情况是因为您返回的是字符串文字而不是 JSON 对象。我认为您的返回类型应该是 RepsonseEntity<String>
但这不起作用,您需要在正文中指定一个对象。您可以创建一个 POJO 来为您保存消息,如下所示:
public class YourResponseClass {
private String message;
//Constructors, getter and setter
}
然后在返回时,您需要将返回类型更改为 RepsonseEntity<YourResponseClass>
,然后返回您的响应:
return ResponseEntity.ok(new YourResponseClass("Successfully Added."));