簡體   English   中英

從Java中的大型JSON數據讀取

[英]Reading from big json data in java

首先,我是programming新手。 我必須為一個學校項目創建一個Android Weather App,並且遇到了這個大問題JSON

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庫,則不需要異步任務。

  1. 首先通過訪問http://jsonlint.com/來驗證json。 這將幫助您查看格式化的Json字符串。

  2. 接下來閱讀Json array和Object。

  3. 使用AsynTask將Json放入ForecastJsonStr字符串中。

  4. 然后,您需要將此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.

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