处理前的JSON数据:
{"password":"123456","query":{"aa":[{"11":"22","bb":[{"33":"44","55":"66"}]}]}}
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonTest {
/**
* 转换json子数组格式
*/
public static JSONObject convertChild(String json) {
String oneKey = "aa";
String twoKey = "bb";
JSONObject oneObject = JSONObject.fromObject(json);
JSONArray jsonArray = oneObject.getJSONObject("query").getJSONArray(oneKey);
for (Object one : jsonArray) {
if (one instanceof JSONObject) {
final JSONObject twoObject = (JSONObject) one;
final JSONArray twoArray = twoObject.getJSONArray(twoKey);
JSONArray newTwoArray = new JSONArray();
for (Object twoChild : twoArray) {
if (twoChild instanceof JSONObject) {
for (Object keyObject : ((JSONObject) twoChild).keySet()) {
JSONObject newChild = new JSONObject();
String key = keyObject.toString();
Object value = ((JSONObject) twoChild).get(key);
newChild.put("name", key);
newChild.put("value", value);
newTwoArray.add(newChild);
}
}
}
twoObject.put(twoKey, newTwoArray);
}
}
return oneObject;
}
}
处理后打印的JSON数据:
{"password":"123456","query":{"aa":[{"11":"22","bb":[{"name":"33","value":"44"},{"name":"55","value":"66"}]}]}}