[英]Reading from big json data in java
首先,我是programming
新手。 我必須為一個學校項目創建一個Android
Weather App,並且遇到了這個大問題JSON
:
因此,我將如何每隔3小時讀取一次溫度(例如:9.00-12.00溫度:5°C,12.00-15.00溫度:7°C等)。 因此,我有一個“ Activity
,以三個小時為間隔顯示一天的溫度。 由於我沒有使用JSON的經驗,因此我不知道某些索引的含義,它何時增加(大約有8個主要的東西:thingies)。
免責聲明:我必須使用JSON,沒有GSON或其他快捷方式,我必須解析並從此JSON中讀取某些數據。 我從開放式天氣地圖API獲得此JSON,因此它每天都在變化。 API
使用volly庫。 您可以輕松地從json獲取數據。 如果您正在使用volly庫,則不需要異步任務。
首先通過訪問http://jsonlint.com/來驗證json。 這將幫助您查看格式化的Json字符串。
接下來閱讀Json array和Object。
使用AsynTask將Json放入ForecastJsonStr字符串中。
然后,您需要將此ForecastJsonStr轉換為JSon對象ForecastJsonObj
要在“列表”中獲取天氣數據,請執行類似的操作
JSONArray weatherArray = forecastJson.getJSONArray("list");
希望這可以幫助
JSONObject receivedData = new JSONObject("The string that you get as response from the API");
JSONArray weatherList = receivedData.getJSONArray("list");
for(int i=0;i<weatherList.length();i++){
JSONObject data = weatherList.getJSONObjectAt(i);
String date_text - data.getString("dt_txt");
JSONArray weatherData = weatherList.getJSONArray("main");
for(int j=0;j<weatherData.length();j++){
// Here is where you will get all the weather stuff that you need
int temp = weatherData.getInt("temp");
// Similarly other values like temp_min, temp_max
}
}
因此,基本上,您需要分析整個過程。 為了更清楚地了解整個結構,請使用諸如http://jsonviewer.stack.hu/之類的內容 ,以便以更清晰的方式查看JSON,以便您更好地了解JSON數據中的需求。 簡單復制將您的數據粘貼到那里,然后單擊“格式”。
如果您看到以“名稱”:“值”之類的形式存儲,那么JSON只是一種名稱-值對存儲。 整數值沒有“”。
請記住,所有JSON都存儲在{}中,並且JSON可以嵌套在JSON中。 因此,在您的示例中,如果看到的話,整個過程都是一個JSON。 在其中,您有一個“城市”鍵,其值在{}內。 因此,“ city”是一個JSONObject。
同樣,“ coord”是一個JSONObject,而“ cod”是一個字符串,“ cnt”是一個整數。
在某些情況下,名稱也指向此處的“列表”之類的JSON對象數組。 JSON數組使用[]表示。 內包含用逗號分隔的JSON對象。
上面是一個非常簡單的示例,可以幫助您入門,從而使您了解正在發生的事情。 因此,嘗試並嘗試從中提取更多數據。
最好的和快樂的編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.