将JSON名称映射到Java类字段/方法(Jackson解析器) 总结
如何将JSON名称映射到使用Jackson解析器时可能(略有)不同的Java类字段名 细节 我有一些传入的JSON文档,我想使用。这在JSON名称与最终Java对象字段名称匹配的情况下非常有效(我在Play框架中这样做) 但是,传入的JSON文档中的一些JSON名称并不适合使用漂亮的Java字段名。更改所有现有的JSON文档以使用适当的Java命名约定目前是不可行的 比如说将JSON名称映射到Java类字段/方法(Jackson解析器) 总结,java,json,playframework,jackson,Java,Json,Playframework,Jackson,如何将JSON名称映射到使用Jackson解析器时可能(略有)不同的Java类字段名 细节 我有一些传入的JSON文档,我想使用。这在JSON名称与最终Java对象字段名称匹配的情况下非常有效(我在Play框架中这样做) 但是,传入的JSON文档中的一些JSON名称并不适合使用漂亮的Java字段名。更改所有现有的JSON文档以使用适当的Java命名约定目前是不可行的 比如说 { "goodName": "value", "not-so-handy": "value" } 我不能创建一个
{
"goodName": "value",
"not-so-handy": "value"
}
我不能创建一个字段名为“notsoHandy”的Java类,因为这在Java中不是一个合法的名称
如何使用Jackson解析器将传入的JSON名称转换为指定的Java类字段名?使用
@JsonProperty
:
@JsonProperty("goodName")
public String goodName;
@JsonProperty("not-so-handy")
public String notSoHandy;
这将解决问题。重命名属性的注释-是否有方法以编程方式获取jackson注释定义的映射?(“不太方便”->“不太方便”)。我需要从引用JSON字段名的REST服务中转换一个“sortField”参数。在您列出的示例中,调用方将调用
list?sortField=notSoHandy
,我需要将其转换为Java bean字段名“notSoHandy”。您可以从URL获取字段名,将其放入您选择的bean字段中。我需要映射信息(“notSoHandy”->“notSoHandy”),而不是解析或向bean中注入任何值。我最终阅读了类方法和注释信息,这比我想象的要容易,但如果Jackson公开了它已经知道的映射,那就太好了