2016-02-22 56 views
-1

我具有以下JSON數組:的Android解析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數組。

+2

請問那些向您發送JSON ...的人? – Shark

+0

誰創建了這樣的JSON。 – Rohit5k2

+0

您需要檢查「data_type」鍵並基於它解析「data_values」。例如:如果它是「顏色」,則解析編碼的顏色json對象,否則將其解析爲字符串數組。 –

回答

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; 

}