查询SerializeFilter 的实现类,发现有一个叫做PascalNameFilter的过滤器已经实现了该功能 …啊啊啊,有这么好的办法为什么不早点发现…
package com.alibaba.fastjson.serializer;
public class PascalNameFilter implements NameFilter {
public String process(Object source, String name, Object value) {
if (name == null || name.length() == 0) {
return name;
}
char[] chars = name.toCharArray();
chars[0]= Character.toUpperCase(chars[0]);
String pascalName = new String(chars);
return pascalName;
}
}
于是简单的通过一行代码就解决了问题。content 是你需要转换的对象
String jsonStr= JSON.toJSONString(content ,new PascalNameFilter());
另外附上自己写的代码,毕竟写了好久,只怪自己发现得太晚,有其他更简单的办法我怎么可能还自己写[滑稽]
public JSONObject parseData(JSONObject json){
try {
org.json.JSONObject jsonObject = new org.json.JSONObject(json);
Iterator iterator = jsonObject.keys();
JSONObject jsonNew = new JSONObject();
while (iterator.hasNext()) {
String key1 = (String) iterator.next();
String key2 = key1.substring(0,1).toUpperCase()+key1.substring(1);
jsonNew.put(key2,jsonObject.get(key1));
}
return jsonNew;
} catch (JSONException ex) {
logger.error("parseData Error:",ex);
throw new DBException("5001",ex.getMessage());
}
}