面对不遵守驼峰命名规则的接口咋办?当然首先要吐槽一下,不过接口是别人定的,虽然看着不爽但还是得去适配,比如cardNumber,他返回的叫{CARDNUMBER:''}。
通过对API的研究可以通过@JsonProperty以及@JsonAutoDetect来实现。
先看代码
@JsonAutoDetect(JsonMethod.FIELD) public class MemberApiParameter implements Serializable { private static final long serialVersionUID = 1L; /** 姓名 **/ @JsonProperty("NAME") private String name; /** 性别 **/ @JsonProperty("SEX") private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
@JsonProperty("NAME")顾名思义,就是显示指定字段的别名,不管是输入还是输出都是这个名字。
@JsonAutoDetect(JsonMethod.FIELD)这个的意思是指解析字段,如果不这样设置,有兴趣的朋友可以试一下,会输出两套东西,类似{name:'',NAME:''},也就是说字段和getter方法都解析了,所以需要制定只解析字段名,忽略方法。还有一种方法就是需要一行行的在所有getter上加上@JsonIgnore,如果字段多就累死了。
JsonMethod的API说明:
ALL This pseudo-type indicates that all of real types are included |
CREATOR Creators are constructors and (static) factory methods used to construct POJO instances for deserialization |
FIELD Field refers to fields of regular Java objects. |
GETTER Getters are methods used to get a POJO field value for serialization, or, under certain conditions also for de-serialization. |
IS_GETTER "Is getters" are getter-like methods that are named "isXxx" (instead of "getXxx" for getters) and return boolean value (either primitive, or Boolean ). |
NONE This pseudo-type indicates that none of real types is included |
SETTER Setters are methods used to set a POJO value for deserialization. |
如果有更好的更加通用的办法欢迎留言补充。
相关推荐
在Java中,通常遵循驼峰命名法(Camel Case),即每个单词的首字母大写,而JSON标准则通常使用下划线命名法(snake case)或全小写单词。因此,我们可能需要一个工具或库来自动处理这种转换。 以下是一些关键知识点...
描述中提到,开发人员在处理JSON时遇到了首字母大写的键,这通常会导致默认的JSON库(如Jackson、Gson等)无法正确映射到Java对象的属性。为了解决这个问题,开发者可以采用自定义反序列化策略或者使用一些特定的...
而在Java中,处理JSON数据最常用的库之一便是Jackson。Jackson能够将Java对象与JSON字符串相互转换,但在使用过程中,开发者可能会遇到字段首字母大小写转换的问题,即当Java类中的字段首字母为大写时,序列化成JSON...
用这个jackson-all-1.6.0.jar的jarbao包,通过注解方式,转化json格式,返回属性都以大写字母开头 内容包括1:jackson-all-1.6.0.jar 2:实体类设置截图 3:action类怎么调用
通常,JSON规范规定键应该是小写的,因此,首字母大写可能需要在转换后额外处理。如果你确实需要这样的格式,你可以创建一个自定义的`JsonGenerator`,重写`writeStringFieldStart`方法,使其在写入字段名时自动转换...
它能将JSON字符串自动转化为符合Java POJO(Plain Old Java Object)规范的类,而且特别的是,它会将JSON中的下划线命名方式自动转换为Java中的驼峰式命名。 首先,让我们理解一下JSON和Java POJO之间的转换原理。...
在Java中,我们可以利用第三方库如Gson或Jackson来方便地创建和操作`JsonObject`。 - **示例代码**: ```java JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("name", "John"); jsonObject...
此外,@JsonProperty注解是Jackson库提供的一个功能,可以让开发者自定义在序列化和反序列化过程中JSON字段的名称,这样可以在字段上使用@JsonIgnore和@JsonIgnoreProperties注解忽略或排除不必要的字段。...
- 常量:全大写字母,单词间用下划线分隔,如`MY_CONSTANT`。 - 包名:全部小写字母,按照域名逆序,如`com.example.myapp`。 2. 注释: - 类、接口和方法上方应有Javadoc注释,提供详细的功能描述和使用示例。 ...
* 局部变量、类的成员变量、类的成员函数、函数参数:以小写字母开头其他的单词首字母大写,变量名不建议使用下划线分隔单词,建议使用驼峰命名法,Android 的系统类都采用此方法。 * 静态常量:全部大写,单词之间...
此外,如果你的应用中有大量类似的需求,可以考虑使用ObjectMapper(例如Jackson库中的)或ModelMapper等工具,它们提供了自动化的对象映射功能,能够减少手动转换的工作量。例如,通过配置ObjectMapper的属性命名...
此外,Jersey 还提供了 `jersey-media-json-jackson` 或 `jersey-media-json-processing` 扩展,用于自动将 Java 对象转换为 JSON 和反之。 **3. Jersey 对 HTTPS 的支持** HTTPS 是 HTTP 协议的安全版本,通过 SSL...
- **JsonUtil**:序列化和反序列化JSON数据,可以使用Gson或Jackson库。 - **FileUtil**:文件操作,如读写文件、删除文件、创建目录等。 - **AnimationUtil**:动画处理,如平移、旋转、淡入淡出等动画效果。 ...
8. **JsonUtil**: JSON解析工具类,可能基于Gson或Jackson库,用于JSON对象与Java对象之间的相互转换。在处理API数据或者本地存储JSON数据时,JsonUtil大大简化了数据处理过程。 9. **DialogUtil**: 对话框操作工具...
1. **代码风格**:遵循Google发布的Android Code Style Guidelines,包括命名规则(如类名使用驼峰式,常量全大写等),缩进和空格使用,以及注释规范,保证代码的一致性和可读性。 2. **版本兼容性**:使用`...
为了将Java对象转换为JSON,通常我们会使用JSON处理库,如Spring框架中的`org.springframework.web.bind.annotation.RestControllerAdvice`和`@ResponseBody`注解,或者使用第三方库如Gson或Jackson。 在HTML和...