Java 在代码中区分json和array

发布时间 2023-03-27 11:08:42作者: 我的心儿

public static void main(String[] args){
String n ="{\n" +
" "data": [\n" +
" {\n" +
" "category": "设计资质",\n" +
" "certNameList": [\n" +
" {\n" +
" "certName": "工程设计电力行业变电工程专业丙级"\n" +
" },\n" +
" {\n" +
" "certName": "工程设计电力行业送电工程专业丙级"\n" +
" }\n" +
" ],\n" +
" "certNo": "A234013309",\n" +
" "certScope": "电力行业变电工程丙级,电力行业送电工程丙级",\n" +
" "signDate": "2018-07-19",\n" +
" "signDept": "安徽省住房和城乡建设厅",\n" +
" "validPeriod": "2023-12-31"\n" +
" },\n" +
" {\n" +
" "category": "施工资质",\n" +
" "certNameList": [\n" +
" {\n" +
" "certName": "消防设施工程专业承包二级"\n" +
" },\n" +
" {\n" +
" "certName": "地基基础工程专业承包一级"\n" +
" },\n" +
" {\n" +
" "certName": "电子与智能化工程专业承包一级"\n" +
" },\n" +
" {\n" +
" "certName": "建筑装修装饰工程专业承包一级"\n" +
" },\n" +
" {\n" +
" "certName": "建筑幕墙工程专业承包一级"\n" +
" }\n" +
" ],\n" +
" "certNo": "D234073917",\n" +
" "certScope": "电子与智能化工程专业承包壹级,地基基础工程专业承包壹级,建筑装修装饰工程专业承包壹级,建筑幕墙工程专业承包壹级,消防设施工程专业承包贰级",\n" +
" "signDate": "2016-06-24",\n" +
" "signDept": "安徽省住房和城乡建设厅",\n" +
" "validPeriod": "2023-12-31"\n" +
" }\n" +
" ],\n" +
" "entQualification": "1"\n" +
"}";
JSONObject parseObj = JSONUtil.parseObj(n);
String n1 = parseObj.get("data").toString();
getJSONType(n1);

}

public static JsonTypeEnum getJSONType(String str)
{
    if (StringUtil.isStrEmpty(str)){
        return JsonTypeEnum.JSON_TYPE_ERROR;
    }
    char[] strChar = str.substring(0, 1).toCharArray();
    char firstChar = strChar[0];
    if (firstChar == '{') {
        return JsonTypeEnum.JSON_TYPE_OBJECT;
    }
    else if (firstChar == '[') {
        return JsonTypeEnum.JSON_TYPE_ARRAY;
    }
    else {
        return JsonTypeEnum.JSON_TYPE_STRING;
    }
}


public enum JsonTypeEnum {
    /**
     * JSONObject
     */
    JSON_TYPE_OBJECT,
    /**
     * JSONArray
     */
    JSON_TYPE_ARRAY,
    /**
     * STRING
     */
    JSON_TYPE_STRING,
    /**
     * 不是JSON格式的字符串
     */
    JSON_TYPE_ERROR;
}