我从JSON API获取数据。我使用GSON解析我的Android应用程序的数据。问题是,同一个变量的值在一种情况下是JSONArray,但在另一种情况下,它是一个JSONObject。因此,我无法编写GSON可用于解析数据的Java类。
第一反应 - "方向"是一个数组
{
"route":{
"time_min":"10",
"directions":{
"direction":[
{
"direction_description":"Dummy text.",
"direction_number":"1"
},
{
"direction_description":"Dummy text.",
"direction_number":"2"
},
{
"direction_description":"Dummy text.",
"direction_number":"3"
}
]}}}
第二反应 - "方向"是一个对象
{
"route":{
"time_min":"10",
"directions":{
"direction":
{
"direction_description":"Dummy text.",
"direction_number":"1"
}
}}}
我应该如何编写GSON将用于解析的Java类?
答案 0 :(得分:1)
首先,尝试选择JSONObject
JSONObject jOBJ = parentOBJ.optJSONObject("direction");
如果jOBJ的值为null
,请尝试获取JSONArray
-
JSONOArray jARR = parentOBJ.optJSONArray("direction");
PS,
在需要时使用try.. catch()
。
答案 1 :(得分:0)
您可以使用 instance of
。
java instanceof运算符用于测试对象是否为 指定类型的实例(类或子类或接口)。
Object obj= jsonOBJ.get("direction");
if (obj instanceof JSONArray)
{
}
else
{
// It's JSONObject
}