【问题标题】:Jackson not able to parse json with spaces杰克逊无法用空格解析 json
【发布时间】:2017-03-02 23:02:17
【问题描述】:

我使用 Jackson 作为 Grizzly 服务器中的 JSON 映射器。要启用 Jackson,我只需在 ResourceConfig 中添加 register(Jackson.feature)。它很好用,因为我的 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 将无法将其映射到类。灰熊返回404 状态码。

例如,如果 JSON 是 {"name":"test 1"}{ "name": "test1" },则即使这些是有效的 JSON,映射器也不会工作。对于第一种情况,我可以通过用\u0020 替换空间来使其工作。

是否有任何 Jackson 设置可以使这些 JSON 映射到 Java 类?

【问题讨论】:

    标签: json jersey jackson grizzly


    【解决方案1】:

    AFAIK,杰克逊对空格没有任何问题。我们一直这样做。但是,我们偶尔会收到错误发送非中断空格的用户的错误报告。你确定它是一个空间而不是一个不间断的空间吗?当您复制粘贴时,某些程序(例如 Skype、Outlook)会对文本进行奇怪的处理。将您的请求保存到一个文件并获得一个十六进制转储,例如:

    od -tx1 myfile
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多