JSON.toJSONString将key变成了首字母小写的问题

发布时间 2023-07-28 17:33:00作者: 山茶花llia

在一些请求接口传参时,往往需要把请求参数转为JSON字符串,但JSON.toJSONString会默认将key的首字母变小写的问题

import lombok.Data;

@Data
public class test{
    private Long Id;
 }
Test params = new Test();
params.setId(11);
JSON.toJSONString(params);
System.out.println(params);

传参打印:{"id":11},
而有时候传递的参数确实存在首字母大写,可通过以下方式进行解决:

1.使用对象进行传参时,可使用@JSONField(name = "Id")注解,写死传递的key名称

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

@Data
public class test{
 @JSONField(name = "Id")
    private Long id;
 }

2.或在使用对象进行传参时,用JSONUTIL.toJSONStr进行转为JSON字符串

Test params = new Test();
params.setId(11);
JSONUtil.toJSONStr(params);
System.out.println(params);

传参打印:{"Id":11}

3.或使用JSONObject,不使用对象类传参

JSONObject params = new JSONObject();
params.put("Id",11);

传参打印:{"Id":11}