首页 > 其他分享 >实现对象字段在转换为 JSON 时大小写保持不变

实现对象字段在转换为 JSON 时大小写保持不变

时间:2024-10-17 09:32:09浏览次数:6  
标签:String int age 字段 Person JSON 大小写 public name

实现对象字段在转换为 JSON 时大小写保持不变

预期效果:对象中字段名是 Age,NAME
转成json后:{"Age":"12","NAME":"张三"}
使用场景:给外系统传参数rest接口参数时,对方要求;

方式一 使用 Jackson 的@JsonProperty注解

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;

class Person {
    private String name;
    @JsonProperty("Age")  // 加了这个注解的可以保持大小写不变
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

public class JsonCasePreservationExample {
    public static void main(String[] args) throws Exception {
        Person person = new Person("Alice", 30);
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(person);
        System.out.println(json);
    }
}

方式二 使用gson

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

class Person {
    private String name;
    private int Age;

    public Person(String name, int age) {
        this.name = name;
        Age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return Age;
    }

    public void setAge(int age) {
        Age = age;
    }
}

public class GsonCasePreservationExample {
    public static void main(String[] args) {
        Person person = new Person("Alice", 30);
        Gson gson = new GsonBuilder()
               .setFieldNamingPolicy(com.google.gson.FieldNamingPolicy.IDENTITY)
               .create();
        String json = gson.toJson(person);
        System.out.println(json);
    }
}

标签:String,int,age,字段,Person,JSON,大小写,public,name
From: https://www.cnblogs.com/xiaop27/p/18471412

相关文章

  • 【c#】JSON操作
    C#中使用Json,安装Newtonsoft.json依赖读取json文件注意:检查json文件的编码类型,是否为UTF-8。不是的话,读取到的中文会乱码方法:json文件使用记事本打开,界面下方会显示编码类型。若不是,将文件另存为,更改即可。privateJObjectReadJsonFile(stringfolder,stringfileName){......
  • Django学习-ORM_常用字段及字段选项
      字段选项: 注意:当我们新增数据的时候,如果没有新增设置了default的字段,此时会使用default设置的默认值填充到新增的数据中 ......
  • 使用 Vcpkg 安装 nlohmann/json
    使用Vcpkg安装nlohmann/json是一个简单且高效的方法,因为它会自动为你处理库的安装和配置。以下是详细的步骤:安装Vcpkg克隆Vcpkg仓库:打开命令提示符(CMD)或PowerShell,并运行以下命令来克隆Vcpkg仓库:shgitclonehttps://github.com/Microsoft/vcpkg.gitcdvcpkg安......
  • JSON 请求太大,无法反序列化
    方案一asp.netmvc默认的json序列化ValueProviderFactory使用的是javascriptserializer,可以在配置文件web.config中设置:<addkey="aspnet:MaxJsonDeserializerMembers"value="150000000"/>和<system.web.extensions><scripting><w......
  • oracle 增删改查字段
    在Oracle数据库中,增删改查(CRUD)操作可以通过SQL语句来完成。以下是针对字段(列)的增删改查操作:增加字段:ALTERTABLE表名ADD列名数据类型[约束];删除字段:ALTERTABLE表名DROPCOLUMN列名;修改字段数据类型或约束:ALTERTABLE表名MODIFY列名新数据类型[新约束];查询......
  • lua脚本使用cjson转换json时,空数组[]变成了空对象{}
    一、前言项目lua使用工具:cjson问题:reids中部分数据的jsonkey存在为[]的值,使用cjson进行解析的时候将原本空数组[]解析成了空对象{}目标:原本[] 转[]二、解决方案在使用cjson类库时,先配置json转换要求--设置json转换格式cjson.encode_empty_table_as_object(fal......
  • Java字段初始化规律
    publicclassmm{publicstaticvoidmain(String[]args){InitializeBlockClassobj=newInitializeBlockClass();System.out.println(obj.field);obj=newInitializeBlockClass(300);System.out.println(obj.field);}}classInitializeBlockClas......
  • 【QAMISRA】解决导入commands.json时报错问题
    1、文档目标解决导入commands.json时报错“Couldnotobtainsystem-wideincludesanddefines”的问题。2、问题场景客户导入commands.json时报错“Couldnotobtainsystem-wideincludesanddefines”。3、软硬件环境1、软件版本: QA-MISRA23.042、机器环境......
  • 任务类型和字段自定义,支撑个性化业务管理
    一句话介绍任务类型和任务字段自定义,面向企业内部不同业务部门,在管理各自任务的时候有不同信息管理差异的场景。企业根据自己的任务管理需求,自定义任务类型,配置不同的任务字段,解决差异化的任务管理场景。应用场景某互联网企业,企业内部有研发部,有销售部研发部通常需要管理以下......
  • springboot~ConstraintValidatorContext验证两个字段内容相同
    场景我在开发修改密码功能,通过原密码和新密码及确认新密码,希望通过ConstraintValidator这个方式来校验新密码和确认新密码,规则是这两个密码需要是相同的。参考文档https://github.com/micronaut-projects/micronaut-core/issues/3243https://stackoverflow.com/questions/377......