我正在尝试使用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;
}
答案 0 :(得分:1)
试试这个:
创建一个类 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文件。
答案 1 :(得分:0)
方法getAssets()
是Context类的一部分。因此,如果您未在扩展Context的类中调用loadJSONFromAsset()
,例如在Activity中,您需要提供Context作为方法参数的引用,然后在其上调用getAssets()