Java中使用JSONTokener判断字符串是JSONObject还是JSONArray

json文本解析类JSONTokener  

按照RFC4627规范将json文本解析为相应的对象。

就是说JSONTokener.nextValue() 会给出一个对象,然后可以动态的转换为适当的类型。

    public static void main(String[] args) {
        try {
            // String str = "{\"name\":\"firmware\"}";
            String str = "[{\"name\":\"name1\"},{\"name\":\"name2\"}]";
            Object typeObject = new JSONTokener(str).nextValue();
            if (typeObject instanceof org.json.JSONArray) {
                System.out.print("JSONArray");
            } else if (typeObject instanceof org.json.JSONObject) {
                System.out.print("JSONObject");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

另外附上判断字符串是否为json格式的代码:

    private boolean isJson(String string) {
        try {
            JSONObject jsonStr = JSONObject.parseObject(string);
            return  true;
        } catch (Exception e) {
            return false;
        }
    }

 

一个从装环境开始的学习记录公众号,欢迎大家关注:

你可能感兴趣的:(java,json)