使用Gson解析List时发生IllegalStateException

时间:2018-09-10 07:01:34

标签: java gson

当我使用Gson时,发生错误:

java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING

这是因为应为[]的字段现在为""(空字符串)。 JSON字符串由其他人生成,当字段为空时,它为""。是否有办法告诉Gson ""等于[],所以不会发生异常?

//will have exception
{"phones": ""}

//ok
{"phone":[]}

//common return value
{"phones":["a", "b"]

1 个答案:

答案 0 :(得分:0)

在解析值之前,请检查对象的类型

if (json instanceof JSONObject) {    
String phone = json.getString("phones");
}
else if (json instanceof JSONArray){
JSONArray phones= jsonObject.getJSONArray("phones");
}