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(
"存在错误,不应该是数组!")
}
}
}