簡體   English   中英

滾動加載可擴展列表視圖中的json

[英]android - loading json in expandable list view with scroll

我有一個應用程序,可以下載並將Json數據庫保存到Storage。

我應該在Expandable List View中查看Json對象,並且我有很多主題,所以我也必須有一個滾動條!

我想知道如何解析Json並將其加載到數組中,然后使用該數組制作Expandable List View?

try {
        URL url = new URL(gURL);
        HttpURLConnection c = (HttpURLConnection) url.openConnection();
        c.setRequestMethod("GET");
        c.setDoOutput(true);
        c.connect();
        String PATH = Environment.getExternalStorageDirectory()
                + "/H3S/DB";
        File file = new File(PATH);
        String fileName = fName;
        File outputFile = new File(file, fileName);
        FileOutputStream fos = new FileOutputStream(outputFile);
        InputStream is = c.getInputStream();
        byte[] buffer = new byte[1024];
        int len1 = 0;
        while ((len1 = is.read(buffer)) != -1) {
            fos.write(buffer, 0, len1);
        }
        fos.close();
        is.close();

這是示例json響應:(很抱歉,json語言是波斯語,由於標題不是UTF-8,因此標題不會顯示):

{
"DBVersion":"4" , 
"Groups":[
{
    "Id"    : 1,
    "title" : "کامپیوتر",
    "bg"    : "1.png"
},
{
    "Id"    : 2,
    "title" : "شیمی",
    "bg"    : "2.png"
},
{
    "Id"    : 3,
    "title" : "برق و الکترونیک",
    "bg"    : "3.png"
},
{
    "Id"    : 4,
    "title" : "Ùیزیک",
    "bg"    : "4.png"
},
{
    "Id"    : 5,
    "title" : "ریاضی",
    "bg"    : "5.png"
},
{
    "Id"    : 6,
    "title" : "مکانیک Ùˆ هواÙضا",
    "bg"    : "6.png"
},
{
    "Id"    : 7,
    "title" : "زیست",
    "bg"    : "7.png"
}
]
}

我是一個iOS開發人員,我在iOS中使用分組樣式UITableView成功地做到了這一點,但我不知道如何在android中簡單地做到這一點!

這可以為您提供幫助。 這是用於解析響應的代碼。

  try {
                    JSONObject jsonObject = new JSONObject(buffer.toString());
                    String Dbversion= jsonObject.getString("DBVersion");
                    JSONArray jaGroups = jsonObject.getJSONArray("Groups");
                    for (int i = 0; i < jaGroups.length(); i++) {


                        JSONObject jsObject = jaGroups.getJSONObject(i);
                        String Id = jsObject.getString("Id");
                        String title = jsObject.getString("title");
                        String bg = jsObject.getString("bg");

                    }

                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

您可以在InputStreamReader上的android中使用JsonReader 您只需要使開發人員示例中的解析適應您的需求即可:

http://developer.android.com/reference/android/util/JsonReader.html

暫無
暫無

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

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