映射到JsonProperty时,混淆了JSON创建实践

时间:2016-05-30 08:12:55

标签: java json jackson

JSON:

"ABCD": [  
  {  
    "xyz": 3,  
    "abc": 4,  
    "info": {  
      "MY_TITLE": "Hello World",  
      "MY_DESCRIPTION": "New to the world"  
    }
  }
  ...similar sub parts
]

在上面的例子中,由于info本身就是另一个对象,因此子string是大写的。我在java中对这些的映射如下:

@JsonProperty("xyz")
private Integer xyz;

@JsonProperty("abc")
private Integer abc;

@JsonProperty("MY_TITLE")
private String myTitle;

@JsonProperty("MY_DESCRIPTION")
private Long myDescription;

需要一些关于JSON创建的文档和实践,并在java上进行相同的映射。

  1. JSON字段命名约定是否不合适?

    OR / AND

  2. JsonProperty映射是否不正确?

1 个答案:

答案 0 :(得分:1)

嗯,映射似乎对我不合适。你应该拥有的是

// ...
@JsonProperty("xyz")
private Integer xyz;

@JsonProperty("abc")
private Integer abc;

@JsonProperty("info")
private MyInfoClass info;
// ...

然后,(单独)MyInfoClass:

public class MyInfoClass {

  @JsonProperty("MY_TITLE")
  private String myTitle;

  @JsonProperty("MY_DESCRIPTION")
  private Long myDescription;

  // getters, setters and so on
}
编辑:至于命名惯例,我不认为有一种被广泛接受的方式,但我所知道的最常见的约定是camelCase和snake_case(都使用非大写字母)。有关详细信息,请参阅此问题: JSON Naming Convention