0
我有一些從服務器返回的JSON數據。確定對象是數組還是字符串
有時數據是其他時間的數組,它返回一個空字符串(是的,我知道它應該返回一個空數組)。
所以我需要檢查FIRST如果類型是一個字符串的實例;如果是這樣,我會忽略它並繼續生活。
否則我需要讀取值。
如何確定對象是否爲String
?
我已經看過這個SO question和其他一些,但我不認爲這完全符合我的情況。
我覺得我很近,但我的代碼失敗表示我無法將對象轉換爲字符串。
但是,如果我把它轉換成一個字符串...那麼它總是一個字符串的實例。無限循環。
這是我到目前爲止的地方。
private void myMethod(JSONObject data){
if (data.has("Notes")){
Object json = new JSONTokener(data.getJSONObject("Notes")).nextValue();
if(data.getJSONObject("Notes") instanceof String) {
JSONArray array = data.getJSONObject("Notes").getJSONArray("Note");
//do all the array stuff
}
}
}
JSON與陣列的例子
{ "Data": {
"key": "A value",
"another key": "some value",
"Notes": {
"Note": ["1", "2", "3", "4"]
} } }
JSON不陣列的例子
{ "Data": {
"key": "A value",
"another key": "some value",
"Notes": ""
} }
'getJSONObject'返回'JSONObject',它不是'instanceof String' –
我需要知道「Notes」的內容是什麼。它是一個字符串還是數組? –
我認爲你想get(「Notes」)instanceof',因爲'get'是返回Object類的東西。您也可以嘗試其中一個'opt'方法,它在無法轉換時返回'null'。 –