JSON所有key值转大写(转小写)

大家好!我是阿凯。最近公司做数据对接要求传输的JSON数据,key值全部大写!

导入maven包

		<dependency>
            <groupId>net.sf.json-libgroupId>
            <artifactId>json-libartifactId>
            <version>2.4version>
            <classifier>jdk15classifier>
        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,java)