我可以在Jackson mapper中使用数字作为属性名称吗?

时间:2013-08-02 01:28:04

标签: java json jackson

我使用Spring MVC3.2和Jackson进行JSON映射。我想用数字序列化和反序列化属性名称。这是我的班级:

public Usage implement Serializable {

  private String imei;

  @JsonIgnore
  @JsonProperty("4")
  private long j2j;

  @JsonIgnore
  @JsonProperty("8")
  private long call;


  //Getters and setters
} 

JSON:

{"imei":"352985052917115", "4":20, "8":10}

控制器:

@ResponseBody
@RequestMapping(value="/alert")
public JsonResult<Void> handleOverUsageAlertByDevice(@RequestBody Usage usage){
    //Do something
}

但是当我将JSON发送到控制器时,发生404错误请求错误,说:

The request sent by the client was syntactically incorrect.

我可以使用number作为Json属性名吗?

您的回答将不胜感激。

2 个答案:

答案 0 :(得分:1)

是的,“数字字符串”是完全合法的JSON名称,杰克逊支持它们。 所以问题不应该与请求处理中的其他问题有关。

答案 1 :(得分:0)

请在发送请求时尝试设置内容类型。 内容类型应设置为“application / json”。