fastjson判断是否包含_javafastjson如何判断整个字符串或其
内部指定key。。。
java 的 fastjson 库我们常⽤做 JSON 数据结构的⼯具库,其 API 中没有直接提供能判断当前 Json 字符串或 JSON 对象内部指定 key 是具体什么类型格式的⽅法(主要是区分 JSONObject 或 JSONArray 类型),需要开发者⾃⾏判断。
解决⽅法
在阐述解决⽅案之前,我们要明确的是,在 fastjson 中,JSON 是抽象类,JSONObject 和 JSONArray 都是其实现⼦类。
判断整个字符串的类型
判断整个字符串是 JSONObject 或 JSONArray 类型时,需要⽤ JSON 提供的 parse ⽅法,具体如下:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JSONDemo {
public static void main(String[] args) {
String text = "{\"knowledge\":\"dict\"}";
// String text = "[{\"knowledge\":\"dict\"},{\"knowledge\":\"qa\"}]";
Object object = JSON.parse(text);
if (object instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) object;
System.out.println("JSONObject:" + jsonObject);
// do other things
} else if (object instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) object;
System.out.println("JSONArray:" + jsonArray);
// do other things
} else {
System.out.println("either JSONObject or JSONArray, text:" + text);
// do other things
}
}
}
如上⽰例可以看出,如果不确定输⼊字符串 text 是什么格式的情况下,做如下操作:
⽤ JSON.parse ⽅法来解析内容;
通过 instanceof 运算符判断返回的对象类型。
判断 JSON 内部元素的类型
JSON 对象的元素或 key 事先不知道具体什么类型,需要通过具体实例数据解析判断时,代码如下:import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JSONDemo {
public static void main(String[] args) {
String text = "{\"knowledge\":{\"name\":\"dict\"}}";
// String text = "{\"knowledge\":[{\"name\":\"dict\"}]}";
JSONObject jsonObject = JSON.parseObject(text);
Object knowledgeObj = ("knowledge");
if (knowledgeObj instanceof JSONObject) {
JSONObject knowledgeJSONObj = (JSONObject) knowledgeObj;
System.out.println("JSONObject:" + knowledgeJSONObj);
// do other things
} else if (knowledgeObj instanceof JSONArray) {
JSONArray knowledgeJSONArr = (JSONArray) knowledgeObj;
System.out.println("JSONArray:" + knowledgeJSONArr);
// do other things
} else {
System.out.println("either JSONObject or JSONArray, knowledgeObj:" + knowledgeObj);
// do other thingsfastjson常用方法
}
}
}
根据上述代码可以看出,步骤如下:
利⽤ ⽅法获取指定 key 的对象;
通过 instanceof 运算符判断返回的对象类型。
如果是 JSONArray 的数据类型,第⼀步就改成 ⽅法,参数由 key 变为数组的索引。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。