JSONType判断方法
枚举型定义
public enum JSONType {
/** JSONObject */
JSON_TYPE_OBJECT,
/** JSONArray */
JSON_TYPE_ARRAY,
/** 不是JSON格式的字符串 */
JSON_TYPE_ERROR,
/** 未找到key */
JSON_TYPE_MISS
}
具体实现方法
* @author ampsycho
* @Title: getJSONType
* @Description: 获得json的json类型
* @param jsonObj json对象
* @param key 对象关键字
* @return JSONType
*/
public JSONType getJSONType(JSONObject jsonObj, String key) {
try {
JSONObject json = jsonObj.getJSONObject(key);
if (!json.isNullObject()) {
return JSONType.JSON_TYPE_OBJECT;
} else {
return JSONType.JSON_TYPE_MISS;
}
} catch (Exception e) {
JSONArray json = jsonObj.getJSONArray(key);
if (!json.isEmpty()) {
return JSONType.JSON_TYPE_ARRAY;
} else {
return JSONType.JSON_TYPE_MISS;
}
}
}
测试示例
public static void main(String[] args) {
//jsonStr 为请求过来的json数据
//jsonStr = {
"test": {
"A": "aa","B": "bb","C": "cc"}}
JSONObject jsonObj = new JSONObject()
jsonObj = JSONObject.fromObject(jsonStr.toString())
JSONType type = getJSONType(jsonObj, "test")
JSONType expect = JSONType.JSON_TYPE_OBJECT
if (type.equals(JSONType.JSON_TYPE_MISS)) {
System.out.println("未找到")
}
if (!type.equals(expect)) {
if (expect.equals(JSONType.JSON_TYPE_ARRAY)) {
System.out.println("存在错误,应该是数组!")
}
if (expect.equals(JSONType.JSON_TYPE_OBJECT)) {
System.out.println("存在错误,不应该是数组!")
}
}
}