Android解析具有不同内容类型的json数组

时间:2016-02-22 14:40:26

标签: android json

我有以下json数组:

key_highlights: [
  {
    feature_id: "",
    name: "body_type",
    display_name: "Body Type",
    data_type: "text",
    data_values: [
       "Sedan"
    ]
  },
  {
    feature_id: "",
    name: "exterior_color",
    display_name: "Exterior Color",
    data_type: "color",
    data_values: [
      {
         hexcode: "#ffffff",
         actual: "Teak Brown",
         normalized: "other"
      }
    ]
  },
  {
    feature_id: "",
    name: "transmission_type",
    display_name: "Transmission Type",
    data_type: "text",
    data_values: [
        1,
        2
    ]
  }
}]

如json中所给出的,data_values数组可以具有不同类型的内容。它可以是json对象,整数或字符串的数组。我没有得到如何解析data_values数组。

1 个答案:

答案 0 :(得分:0)

根据您的评论,“data_type”与“data_values”的类型无关,它似乎是一个非常糟糕的设计。我建议您更改JSON层次结构,但如果您仍想继续使用给定的JSON,请使用以下代码:

Object dataValues = jsonObject.opt("data_values");

if(dataValues instanceof String[]) {

String[] sDataValues = (String[]) dataValues;

}
else if(dataValues instanceof int[]) {

int[] iDataValues = (int[]) dataValues;

}
else if(dataValues instanceof JSONArray) {

JSONArray jArrayDataValues = (JSONArray) dataValues;

}