`
energykey
  • 浏览: 597502 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Jackson json 处理全大写或不规范的JSON

阅读更多

面对不遵守驼峰命名规则的接口咋办?当然首先要吐槽一下,不过接口是别人定的,虽然看着不爽但还是得去适配,比如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说明:

Enum Constant Summary
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.

 

 

如果有更好的更加通用的办法欢迎留言补充。

0
1
分享到:
评论

相关推荐

    首字母大写的json串转为javabean实例

    在Java中,通常遵循驼峰命名法(Camel Case),即每个单词的首字母大写,而JSON标准则通常使用下划线命名法(snake case)或全小写单词。因此,我们可能需要一个工具或库来自动处理这种转换。 以下是一些关键知识点...

    Json转对象忽略大小写

    描述中提到,开发人员在处理JSON时遇到了首字母大写的键,这通常会导致默认的JSON库(如Jackson、Gson等)无法正确映射到Java对象的属性。为了解决这个问题,开发者可以采用自定义反序列化策略或者使用一些特定的...

    jackson解析json字符串,首字母大写会自动转为小写的方法

    而在Java中,处理JSON数据最常用的库之一便是Jackson。Jackson能够将Java对象与JSON字符串相互转换,但在使用过程中,开发者可能会遇到字段首字母大小写转换的问题,即当Java类中的字段首字母为大写时,序列化成JSON...

    转化json格式,返回属性都以大写字母开头

    用这个jackson-all-1.6.0.jar的jarbao包,通过注解方式,转化json格式,返回属性都以大写字母开头 内容包括1:jackson-all-1.6.0.jar 2:实体类设置截图 3:action类怎么调用

    Javabean转换成json字符并首字母大写代码实例

    通常,JSON规范规定键应该是小写的,因此,首字母大写可能需要在转换后额外处理。如果你确实需要这样的格式,你可以创建一个自定义的`JsonGenerator`,重写`writeStringFieldStart`方法,使其在写入字段名时自动转换...

    JSON转java类

    它能将JSON字符串自动转化为符合Java POJO(Plain Old Java Object)规范的类,而且特别的是,它会将JSON中的下划线命名方式自动转换为Java中的驼峰式命名。 首先,让我们理解一下JSON和Java POJO之间的转换原理。...

    json基础文档

    在Java中,我们可以利用第三方库如Gson或Jackson来方便地创建和操作`JsonObject`。 - **示例代码**: ```java JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("name", "John"); jsonObject...

    为什么rest接口返回json建议采用下划线形式,不要用驼峰

    此外,@JsonProperty注解是Jackson库提供的一个功能,可以让开发者自定义在序列化和反序列化过程中JSON字段的名称,这样可以在字段上使用@JsonIgnore和@JsonIgnoreProperties注解忽略或排除不必要的字段。...

    java 编码规范 javaAPI

    - 常量:全大写字母,单词间用下划线分隔,如`MY_CONSTANT`。 - 包名:全部小写字母,按照域名逆序,如`com.example.myapp`。 2. 注释: - 类、接口和方法上方应有Javadoc注释,提供详细的功能描述和使用示例。 ...

    我总结的Android编程规范 - 薰衣草的旋律 - 博客园1

    * 局部变量、类的成员变量、类的成员函数、函数参数:以小写字母开头其他的单词首字母大写,变量名不建议使用下划线分隔单词,建议使用驼峰命名法,Android 的系统类都采用此方法。 * 静态常量:全部大写,单词之间...

    SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名

    此外,如果你的应用中有大量类似的需求,可以考虑使用ObjectMapper(例如Jackson库中的)或ModelMapper等工具,它们提供了自动化的对象映射功能,能够减少手动转换的工作量。例如,通过配置ObjectMapper的属性命名...

    jersey框架

    此外,Jersey 还提供了 `jersey-media-json-jackson` 或 `jersey-media-json-processing` 扩展,用于自动将 Java 对象转换为 JSON 和反之。 **3. Jersey 对 HTTPS 的支持** HTTPS 是 HTTP 协议的安全版本,通过 SSL...

    Android-Android的代码规范总结以及一些实用常用的工具类

    - **JsonUtil**:序列化和反序列化JSON数据,可以使用Gson或Jackson库。 - **FileUtil**:文件操作,如读写文件、删除文件、创建目录等。 - **AnimationUtil**:动画处理,如平移、旋转、淡入淡出等动画效果。 ...

    Android快速开发系列 10个常用工具类 程序源码

    8. **JsonUtil**: JSON解析工具类,可能基于Gson或Jackson库,用于JSON对象与Java对象之间的相互转换。在处理API数据或者本地存储JSON数据时,JsonUtil大大简化了数据处理过程。 9. **DialogUtil**: 对话框操作工具...

    Android 开发手册

    1. **代码风格**:遵循Google发布的Android Code Style Guidelines,包括命名规则(如类名使用驼峰式,常量全大写等),缩进和空格使用,以及注释规范,保证代码的一致性和可读性。 2. **版本兼容性**:使用`...

    zTree插件下拉树使用入门教程

    为了将Java对象转换为JSON,通常我们会使用JSON处理库,如Spring框架中的`org.springframework.web.bind.annotation.RestControllerAdvice`和`@ResponseBody`注解,或者使用第三方库如Gson或Jackson。 在HTML和...

Global site tag (gtag.js) - Google Analytics