Fastjson: 如何判断一个JSON字符串是普通JSON(JSONObject)还是数组JSON(JSONArray)?

Created on 28 Mar 2017  ·  13Comments  ·  Source: alibaba/fastjson

我目前只知道根据首字符是{、[,或末字符是}、]来判断,还有其他方式么?

All 13 comments

正则表达式和首字符或末字符类似就不用说了。

@LSL1618 可以用APIJSON里JSON类的两个方法
boolean isJSONObject(Object obj)
boolean isJSONArray(Object obj)

https://github.com/TommyLemon/APIJSON/blob/master/APIJSON(Server)/APIJSON(Idea)/src/main/java/zuo/biao/apijson/JSON.java

@TommyLemon ,好的,我瞧瞧去!

paramObj instanceof JSONArray,直接用instanceof判断一下就可以了

@wujiedong 字符串。。。。不可能instanceof JSONArray吧。。。。

Object obj = JSON.parse(str);
if(obj instanceof JSONObject) {

}else if if(obj instanceof JSONArray) {

}else {}

@Weirdo-Z ,正解,字符串去instanceof JSONArray肯定匹配不上。

@JerryX ,你的思路是先解析再判断类型,可行。不过需要先过滤掉非法JSON字符串,要不然会报异常。

@LSL1618 这个地址也是失效的

上面所有的链接都失效啦,来个能用的

Was this page helpful?
0 / 5 - 0 ratings