java - 映射到 JsonProperty 时对 JSON 创建实践感到困惑

标签 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 字段命名约定是否不合适?

    或/与

  2. JsonProperty 映射是否不正确?

最佳答案

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

// ...
@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

关于java - 映射到 JsonProperty 时对 JSON 创建实践感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520722/

相关文章:

java - 如何获取 Kafka 中代理的连接字符串

java - 使用 Wicket 无状态页面时,Bean 未正确注入(inject)另一个 Bean

javascript警报打印对象对象

android - 替换标准的 Android JSON 解析器以获得更好的性能?

kotlin - 使用Jackson使用模式反序列化Property

java - 为什么创建多个 ObjectMapper 实例不需要太多时间?

java - 不修改对象的 ConcurrentModificationException

java - 从PreparedStatement查询

javascript - 使用 JSON 数组填充phonegap sqlite 数据库

java - 为什么我的 Servlet 不响应 UTF-8 格式的 JSON 请求?