杰克逊无法用空格解析json

时间:2017-03-02 23:02:18

标签: json jersey jackson grizzly

我使用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类?

1 个答案:

答案 0 :(得分:1)

AFAIK,杰克逊在空白方面毫无困难。我们一直这样做。但是,我们偶尔会收到错误发送不间断空格的用户的错误报告。你确定它是一个空间而不是一个不间断的空间吗?一些程序,如Skype,Outlook在复制粘贴时会对文本做一些奇怪的事情。将您的请求保存到文件并获得十六进制转储,如:

od -tx1 myfile

寻找20个十六进制空格,并确保它不是c2 a0,这是不间断的空间。