簡體   English   中英

從資產讀取JSON文件

[英]Read JSON file from assets

我正在嘗試使用getAssets()從片段中的資產讀取JSON文件,但是IDE表示“無法解析此方法(getAssets())”。

 public String loadJSONFromAsset() {
    String json = null;
    try {
        InputStream is = getAssets().open("moods.json");
        int size = is.available();
        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();
        json = new String(buffer, "UTF-8");
    } catch (IOException ex) {
        ex.printStackTrace();
        return null;
    }
    return json;

}

嘗試這個:

創建一個類LoaderHelper.java

public class LoaderHelper {
    public static String getJson(Context context, String json){
        String jsonString=parseFileToString(context, json);
        return jsonString;
    }
    public static String parseFileToString( Context context, String filename )
    {
        try
        {
            InputStream stream = context.getAssets().open( filename );
            int size = stream.available();

            byte[] bytes = new byte[size];
            stream.read(bytes);
            stream.close();

            return new String( bytes );

        } catch ( IOException e ) {
            Log.i("GuiFormData", "IOException: " + e.getMessage() );
        }
        return null;
    }
}

要獲取json字符串,請按以下方式調用上述類:

String str=LoaderHelper.parseFileToString(context, "levels.json");

其中levels.json是存儲在asset文件夾中的json文件。

方法getAssets()是Context類的一部分。 因此,如果您不在擴展Context的類中調用loadJSONFromAsset()例如Activity),則需要提供對Context的引用作為方法的參數,然后在其上調用getAssets()

暫無
暫無

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

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