JSOnObjectとJSOnArrayのkey値を大文字または小文字に変換する一般的な方法
4017 ワード
一.jsonデータのkeyをすべて大文字または小文字に変換する必要がある場合がある.直接コードを付けて、一つのツールクラスにカプセル化して、直接JSOnObjectあるいはJSOnArrayオブジェクトに入って、配列あるいはオブジェクトの方法を呼び出すことができます.package cn.wisesign.commonutil.jsonpath;
import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStreamReader; import java.io.Reader; import java.util.Iterator;
import net.sf.json.JSONArray; import net.sf.json.JSONObject;
/** JSONのキーを小文字または大文字に変更*/@SuppressWarnings("rawtype")public class JSOnkeyTransfer{public static final String JSONOBJECT_KEY="JSOnObject";public static final String JSOARRAY_KEY="JSOnArray";/** jsonのkeyを大文字または小文字に変更する @throws */public static JSONObject transferJsonKey(JSONObject json) { JSONObject object = new JSONObject(); if (json.getClass().toGenericString().endsWith(JSONOBJECT_KEY)) { JSONObject jsonObject = (JSONObject)json; Iterator iterator = jsonObject.keys(); while (iterator.hasNext()) { String jsonKey = (String) iterator.next(); Object valueObject = jsonObject.get(jsonKey); if (valueObject.getClass().toString().JSOONOBJECT_KEY){JSOONObjectcheckObject=JSOONObject.fromObject(valueObject);//null値の場合、valueObjectかJSOONObjectオブジェクトか判定空が成立しない場合、nullObject if(!checkObject.isNuullObject(){object.accumulate(jsonKey.toUperCase()、transferJsonKey(JSOONObject)valueObject(JSOONObject)valueObject(JSOONObject)valueObJJJJJECT_JECT_KEY))){JSOnnnObject(JSOnObject_S);}else { object.accumulate(jsonKey, null); } } else if (valueObject.getClass().toString().endsWith(JSONARRAY_KEY)) { object.accumulate(jsonKey.toUpperCase(), transferJsonArray(jsonObject.getJSONArray(jsonKey))); }else{ object.accumulate(jsonKey.toUpperCase(), valueObject); } } } return object; }
/** JSOnArraykey大文字と小文字の変換 @throws */public static JSONArray transferJsonArray(JSONArray jsonArray) { JSONArray array = new JSONArray(); if (null != jsonArray && jsonArray.size() > 0) { for (Object object : jsonArray) { if (object.getClass().toString().endsWith(JSONOBJECT_KEY)) { array.add(transferJsonKey((JSONObject) object)); } else if (object.getClass().toString().endsWith(JSONARRAY_KEY)) { array.add(transferJsonArray((JSONArray) object)); } } } return array; }
public static void main(String[] args) { String jsonStr = “”; try { File jsonFile = new File(“d:\test.json”); FileReader fileReader = new FileReader(jsonFile);
//jsonStr = jsonStr.toUpperCase(); }catch(Exception e){
}
import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStreamReader; import java.io.Reader; import java.util.Iterator;
import net.sf.json.JSONArray; import net.sf.json.JSONObject;
/**
/**
public static void main(String[] args) { String jsonStr = “”; try { File jsonFile = new File(“d:\test.json”); FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
//jsonStr = jsonStr.toUpperCase(); }catch(Exception e){
}
//String str = "{\"contextDTO\":{\"appPackAccToken\":null,\"cAllChainId\":\"\",\"callCount\":0,\"currentCallId\":\"0\",\"employeeId\":\"00000000-0000-0000-0000-000000000000\",\"id\":null,\"latitude\":null,\"loginCurrentCulture\":0,\"loginDepartment\":\"00000000-0000-0000-0000-000000000000\",\"loginDepartmentName\":null,\"loginIP\":null,\"loginOrg\":\"00000000-0000-0000-0000-000000000000\",\"loginTenantId\":\"00000000-0000-0000-0000-000000000000\",\"loginTenantName\":null,\",\"loginUserCode\":\"dddddd\",\"loginUserID\":\"79694a50-ea5f-4d66-99ef-bc7661cc2477\",\"loginUserName\":\" \",\"longitude\":null,\"sessionID\":\"97571283-6eed-4fd5-9d7c-6c60dbd362c9\"},\"statusCode\":null}";
JSONObject object = JSONObject.fromObject(jsonStr);
//JSONArray object = JSONArray.fromObject(jsonStr);
object = transferJsonKey(object);
//object = transferJsonArray(object);
System.out.println(object.toString());
}
}