天天看點

Android中通路assets本地json檔案

目的:當App中用到固定的json資料時,如:國家城市清單、班級成員等時,可以将json資料制作為本地json檔案存入assets檔案夾下。

步驟如下:

1、建立assets檔案夾,并将json檔案複制到此檔案夾中

在main檔案夾下建立assets檔案,然後再assets檔案中建立namelist.json檔案夾,将json資料複制到test.json檔案中。

2、通路json檔案

try {
            AssetManager assetManager = getAssets(); // 獲得assets資料總管(assets中的檔案無法直接通路,可以使用AssetManager通路)
            InputStreamReader inputStreamReader = new InputStreamReader(assetManager.open("namelist.json"),"UTF-8"); // 使用IO流讀取json檔案内容
            BufferedReader br = new BufferedReader(inputStreamReader);
            String line;
            StringBuilder builder = new StringBuilder();
            while ((line = br.readLine())!=null){
                builder.append(line);
            }
            br.close();
            inputStreamReader.close();

            JSONObject testJson = new JSONObject(builder.toString());  //  從builder中讀取了json中的資料。
            //  直接傳入JSONObject來構造一個執行個體
            JSONArray array = testJson.getJSONArray("nameList");

            Log.e("nameList",array.toString());

            for (int i = ;i<array.length();i++){
                strings[i] = array.getString(i);
            }


        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }