簡體   English   中英

使用Java在JSON中的另一個數組中獲取數組值

[英]Get array value inside another array in JSON using Java

這是我的 JSON 格式

{
 "personalData": [
   "firstName": "John",
   "lastName": "Doe",
   "hobby": ["Hiking", "Running", "Swimming"] 
 ]
}

我如何在“愛好”中獲取每個元素

這是我現有的返回所有項目的代碼

JSONObject jsonObject = new JSONObject(classJSON.getJSON(getActivity()));
JSONArray jsonArray = jsonObject.getJSONArray("personalData");
JSONObject data = jsonArray.getJSONObject(0);
data.getString("firstName")
// This will return "John"
data.getString("lastName")
// This will return "Doe"
data.getString("hobby")
// This will return ["Hiking", "Running", "Swimming"]
// How I can access each element in "hobby" like how I can get the element in first index.

你目前擁有的東西有點不對勁。

例如,您的 json 不會解析,因為您在個人數據中定義了一個數組,但是您正在用鍵值對填充它,這僅允許在對象中使用。

實際上,您的 json 應該如下所示:

{
 "personalData": {
   "firstName": "John",
   "lastName": "Doe",
   "hobby": ["Hiking", "Running", "Swimming"] 
 }
}

鑒於這是一個 JSONObject 而不是 JSONArray,您必須替換它:

JSONArray jsonArray = jsonObject.getJSONArray("personalData");
JSONObject data = jsonArray.getJSONObject(0);

有了這個:

JSONObject data = jsonObject.getJSONObject("personalData");

此時,您將能夠像這樣提取愛好數組:

data.getJSONArray("hobby")

我不確定您是否進行過任何測試,但data.getString("hobby")應該拋出 JSONException,因為它是 JSONArray,而不是字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM