java解析json中的所有属性并返回
使用的jar包为:fastjson-1.1.36.jar
判断是json对象还是json数组,json数组的话,获取第一个对象的属性即可,采用了递归的方式,详情代码如下。
/**
* 解析json中的所有属性
* @param json json值
* @param father 父亲属性,初始为""或者null
* @param result 返回数组
*/
public void eachProperties(Object json, String father, ArrayList<String> result) {
String className = json.getClass().getSimpleName();
if (className.equals("JSONObject")) {
JSONObject jsonObj = (JSONObject) json;
Iterator<String> iter = jsonObj.keySet().iterator();
while (iter.hasNext()) {
String nextIndex = iter.next();
String prefix = father == null || father == "" ? nextIndex : father + "." + nextIndex;
Object sonJson = jsonObj.get(nextIndex);
eachProperties(sonJson, prefix, result);
}
} else if (className.equals("JSONArray")) {
JSONArray array = (JSONArray) json;
Object sonJson = array.get(0);
eachProperties(sonJson, father, result);
} else {
String prefix = father;
if (null != result) {
result.add(prefix);
}
}
}