我使用Jackson作为Grizzly服务器中的JSON映射器。要启用杰克逊,我只需在register(Jackson.feature)
中添加ResourceConfig
即可。它非常有效,因为我的JAXRS API中的Java POJO对象会自动从JSON输入映射为具有application/json
内容类型的HTTP内容。
例如,{"name":"test1"}
会自动映射到类
class Name {
private String name;
public Name() {}
public String getName() {
return name;
}
}
字符串name
的值为test1
。
但是,如果我在JSON中的任何位置添加空格,Jackson就无法将其映射到该类。 Grizzly返回404
状态代码。
例如,如果JSON是{"name":"test 1"}
或{ "name": "test1" }
,则即使这些是有效的JSON,映射器也不起作用。对于第一种情况,我可以通过用\u0020
替换空格来使其工作。
是否有任何Jackson设置可以将这些JSON映射到Java类?
答案 0 :(得分:1)
AFAIK,杰克逊在空白方面毫无困难。我们一直这样做。但是,我们偶尔会收到错误发送不间断空格的用户的错误报告。你确定它是一个空间而不是一个不间断的空间吗?一些程序,如Skype,Outlook在复制粘贴时会对文本做一些奇怪的事情。将您的请求保存到文件并获得十六进制转储,如:
od -tx1 myfile
寻找20个十六进制空格,并确保它不是c2 a0,这是不间断的空间。