特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/
1、问题描述
最近在做接口,对方提供的接口文档里面属性居然都是大写的,感觉搞的很不专业。最大的问题是:转化为json字符串的时候自动把首字母给转为小写了。
2、解决方法
在字段的get方法上添加@JSONField(name = “NAME”) 注解可以解决这类问题,具体代码如下:
package com.mao.beans; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature; public class T { public static void main(String[] args) throws Exception {
String s = toJson(new User());
System.out.println(s);
} /**
*
* 描述:将对象格式化成json字符串
* @author mao2080@sina.com
* @created 2017年4月1日 下午4:38:18
* @since
* @param object 对象
* @return json字符串
* @throws Exception
*/
public static String toJson(Object object) throws Exception {
try {
return JSON.toJSONString(object, new SerializerFeature[] {
SerializerFeature.WriteMapNullValue,
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteNonStringKeyAsString });
} catch (Exception e) {
throw new Exception(e);
}
} } class User { private String NAME; private int AGE; @JSONField(name = "NAME")
public String getNAME() {
return NAME;
} public void setNAME(String nAME) {
NAME = nAME;
} @JSONField(name = "AGE")
public int getAGE() {
return AGE;
} public void setAGE(int aGE) {
AGE = aGE;
} }
3、运行结果
{"AGE":0,"NAME":null}