JSON.toJSONString将key变成了首字母小写的问题
在一些请求接口传参时,往往需要把请求参数转为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}