| 巡覽 JSON 陣列內容 |
|---|
|
jstr = ["1",1,true]; jsonAry = new JSONArray(jstr); try { for (int i = 0; i < jsonAry.length(); i++) { Object obj = jsonAry.get(i); log(obj.toString()); } } catch (JSONException ex) { Debug.log(ex); } |
|
因為失敗時會丟出 JSONException 所以用 try-cath 包起來 |
用來操作 Json 陣列的物件類別是 JSONArray
| JSONArray |
|---|
| org.json.JSONArray |
| JSONArray 官方文件 |
要從 JSONObject 中取出陣列物件
要用到 getJSONArray()
要得到 JSONArray 陣列長度,則要用 length
| Length 函式 |
|---|
| org.json.JSONArray.Length |
| int length() |
| 跟 ArrayList 不同,不是使用 size() |
| 官方文件 |
取得陣列中元素是用 get 或 opt
| get 函式 |
|---|
| 取得陣列中的元素 |
| Object get(int index) |
| 傳入 index,該位置的內容以 Object 傳回 |
| 如果 index 大於陣列長度,會丟回 JSONException |
| 官方文件 |
取回 Object 型態有時還需要轉型處理
如果已經確定資料型別
可以直接使用指定回傳資料型別的 get 函式
| get 糸列函式 [特定資料型別] |
|---|
| 取得 JSONArray 中的特定型別元素 |
|
String getString(int index) int getInt(int index) boolean getBoolean(int index) long getLong(int index) double getDouble(int index) JSONArray getJSONArray(int index) JSONObject getJSONObject(int index) |
| 傳入 index,傳回 該位置的內容以特定型別傳回 |
|
如果 index 大於陣列長度 或是該位置資型態不符 (像是使用 getInt(),但取得的內容卻不為數字) 會丟回 JSONException |
|
官方文件 getString getInt getBoolean getLong getDouble getJSONArray getJSONObject |
在無法確保取回的資料是否安全時,可使用 opt
| opt 函式 |
|---|
| 取回 JSON 陣列中元素 |
|
Object opt(int index) |
|
如果 index 大於陣列長度 或資料型態不符 會回傳 null |
| 官方文件 |
opt 也有指定資料型別的版本
| opt 糸列函式 [特定資料型別] |
|---|
| 以較安全的方式取回 JSONArray 中元素 |
|
Object opt(int index) booleanoptBoolean(int index) double optDouble(int index) int optInt(int index) JSONArray optJSONArray(int index) JSONObject optJSONObject(int index) long optLong(int index) String optString(int index) |
|
如果 index 大於陣列長度,或資料型態不符 optString 會傳回空字串 optInt 會傳回 0 optBoolean 會傳回 false optLong 會傳回 0 optDouble 會傳回 NaN opt 會傳回 null optJSONArray 會傳回 null optJSONObject 會傳回 null |
|
官方文件 optString optInt optBoolean optLong optDouble optJSONArray optJSONObject |
opt 可以指定失敗時回傳預設內容的版本
| opt 系列函式 + fallback |
|---|
| 取回 JSONArray 中的元素,取值失敗時傳回指定的 fallback |
|
String optString(int index , String fallback) int optInt(int index , int fallback) booleanoptBoolean(int index , boolean fallback) double optDouble(int index , double fallback) long optLong(int index , boolean fallback) |
| 傳回 index 及失敗時回傳值,傳回該位置的內容 |
|
取值失敗 (ex: index 大於陣列長度,取回的值資料型態不符) 會傳回參數指定的 fallback |
|
官方文件 optString optInt optBoolean optLong optDouble |