大家好!我是阿凯。最近公司做数据对接要求传输的JSON数据,key值全部大写!
导入maven包
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
jar包形式:json-lib-2.4-jdk15.jar所需全部JAR包
导入工具类
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.util.Iterator;
public class JsonConvert {
public static void main(String[] args) {
String json = "{'a':'a','b':'b','c':'c'}";
String jsonArray = "[{'a':'a', 'b':'b', 'aa':{'qq':'qq','ww':'ww','ee':'ee'}}]";
//json的key转大写
System.out.println(transtoUpperCaseObject(json));
//json数组的key转大写
System.out.println(transToArray(jsonArray).toString());
}
//json的key转大写
//toUpperCase()换成toLowerCase() 转小写
public static JSONObject transtoUpperCaseObject(String json) {
JSONObject jSONArray1 = JSONObject.fromObject(json);
JSONObject jSONArray2 = new JSONObject();
Iterator it = jSONArray1.keys();
while (it.hasNext()) {
String key = (String) it.next();
Object object = jSONArray1.get(key);
if (object.getClass().toString().endsWith("JSONObject")) {
jSONArray2.accumulate(key.toUpperCase(), transtoUpperCaseObject(object.toString()));
} else if (object.getClass().toString().endsWith("JSONArray")) {
jSONArray2.accumulate(key.toUpperCase(), transToArray(jSONArray1.getJSONArray(key).toString()));
}else{
jSONArray2.accumulate(key.toUpperCase(), object);
}
}
return jSONArray2;
}
//json数组的key转大写
public static JSONArray transToArray(String jsonArray) {
JSONArray jSONArray1 = JSONArray.fromObject(jsonArray);
JSONArray jSONArray2 = new JSONArray();
for (int i = 0; i < jSONArray1.size(); i++) {
Object jArray = jSONArray1.getJSONObject(i);
if (jArray.getClass().toString().endsWith("JSONObject")) {
jSONArray2.add(transtoUpperCaseObject( jArray.toString()));
} else if (jArray.getClass().toString().endsWith("JSONArray")) {
jSONArray2.add(transToArray(jArray.toString()));
}
}
return jSONArray2;
}
}
直接调用方法转换就可以了,注意jsonArray要以中括号开头和结尾
[{‘a’:‘a’, ‘b’:‘b’, ‘aa’:{‘qq’:‘qq’,‘ww’:‘ww’,‘ee’:‘ee’}}]

本文介绍了如何在Java中将JSON对象的键值全部转换为大写。文章提及需要导入json-lib-2.4-jdk15.jar库,并提供了一个工具类的方法来实现JSON键的大写转换,特别指出转换时JSON数组需以中括号包围。
348

被折叠的 条评论
为什么被折叠?



