我正在编写一个Android应用程序,偶尔需要下载大约1MB的json字符串并包含大约1000个元素,并将其中的每一个解析为SQLite数据库,我用它来填充ListActivity.
即使下载和解析不是每次与应用程序交互时都需要完成的事情(仅在第一次运行时或用户选择刷新数据时),我仍然担心解析部分需要花费太长时间,在大约两到三分钟 - 在手机应用程序条款似乎是永恒!
我目前正在使用Gson将每个json对象解析为我定义的自定义对象,然后使用SQLiteOpenHelper将其输入数据库.
我的问题是 - 有更快的方法来实现这个吗?如果不使用Gson,直接与json交互会明显更快吗?或者我在下面的代码中做了一些愚蠢的事情,这会让事情变慢?
这是我在AsyncTask中使用的方法将json解析为SQLite:
protected Boolean doInBackground(Integer... bType) {
InputStream source = getJsonInputStream(bTypeString);
VegDataHandler db = new VegDataHandler(mainActivity, bTypeString);
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
JsonParser jParser = new JsonParser();
JsonArray jArray = jParser.parse(reader).getAsJsonArray();
aLength = jArray.size();
mCurrProgress = 1;
publishProgress(mCurrProgress, 0, aLength);
/* Each array element is of the form { company: {...} } */
int i = 0;
mCurrProgress = 2;
for (JsonElement obj : jArray) {
Company c …Run Code Online (Sandbox Code Playgroud)