我需要一些帮助才能写入现有的json文件。在这个例子中,我可以使用GSON或json解析数据并从中读取数据。我这样做是为了通过屏幕上显示的id过滤结果。所以它抓住添加并搜索我的900多个视频列表,然后给出选择的视频。唯一的问题是我不想显示它们我想保存它们:)
final Button button = findViewById(R.id.buttonx);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// load json parse json and grab fields...
// then write to new file!
try {
//Load File
BufferedReader jsonReader = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.movielist)));
StringBuilder jsonBuilder = new StringBuilder();
for (String line = null; (line = jsonReader.readLine()) != null;) {
jsonBuilder.append(line).append("\n");
}
//Parse Json
JSONTokener tokener = new JSONTokener(jsonBuilder.toString());
JSONArray jsonArray = new JSONArray(tokener);
ArrayList<String> fields = new ArrayList<String>();
for (int index = 0; index < jsonArray.length(); index++) {
//Set both values into the listview
JSONObject jsonObject = jsonArray.getJSONObject(index);
String series = jsonObject.getString("id");
if (series.equals(tvId.getText())) {
fields.add(jsonObject.getString("movie"));
fields.add(jsonObject.getString("year"));
fields.add(jsonObject.getString("duration"));
fields.add(jsonObject.getString("director"));
fields.add(jsonObject.getString("image"));
fields.add(jsonObject.getString("id"));
}
}
} catch (FileNotFoundException e) {
Log.e("jsonFile", "file not found");
} catch (IOException e) {
Log.e("jsonFile", "ioerror");
} catch (JSONException e) {
Log.e("jsonFile", "error while parsing json");
}
Toast.makeText(DetailActivity.this, "The following movie has been saved " + tvId.getText(), Toast.LENGTH_LONG).show();
// Toast.makeText(DetailActivity.this, "This features is not working", Toast.LENGTH_LONG).show();
}
});
我的问题是,一旦我获得了我希望能够将其写入现有JSON文件的数据。我的api是18所以不能使用FILEwriter我试图让应用程序几乎所有人都可以使用。正确方向上的一点很棒。
答案 0 :(得分:0)
如果要写入原始文件夹中打包的文件,则必须先将其复制到本地文件系统。项目中原始目录中包含的资源将打包在APK中,并且在运行时无法写入。考虑查看内部或外部数据存储API。 Update raw resources is not possible