-7
我想从资产文件夹中的json文件解析文本和图像到我的列表视图。请解释清楚,因为我是Android的超人。给我所有文件的完整代码。万分感谢。如何解析JSON从资产文件夹到列表视图?
我想从资产文件夹中的json文件解析文本和图像到我的列表视图。请解释清楚,因为我是Android的超人。给我所有文件的完整代码。万分感谢。如何解析JSON从资产文件夹到列表视图?
只要打开从资产文件夹中的文件,这样
StringBuilder buf=new StringBuilder();
InputStream json;
try {
json = context.getAssets().open("YOUR_FILE_NAME.txt");
BufferedReader in=
new BufferedReader(new InputStreamReader(json, "UTF-8"));
String str;
while ((str=in.readLine()) != null) {
buf.append(str);
}
}
catch (IOException e1) {
e1.printStackTrace();
}
result1 = buf.toString();
RESULT1将拥有完整的JSON从文件
然后使用这个库调用GSON解析JSON ...
这里是它的教程Json parsing through Gson
也许代码可以帮助你。
public class MainActivity extends Activity {
private ListView listView;
private void log(String msg) {
Log.d("DNB", this.getClass().getName() + ">>" + msg);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.listView = new ListView(this);
String jsonData = loadJsonFromAsset();
String[] items = parseJson(jsonData);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);
setContentView(listView);
log("json from asset: " + jsonData);
}
private String[] parseJson(String jsonData) {
String[] items = new String[0];
if (jsonData != null) {
try {
JSONArray jsonArray = new JSONArray(jsonData);
if (jsonArray != null) {
items = new String[jsonArray.length()];
for (int i = 0; i < items.length; i++) {
items[i] = jsonArray.get(i).toString();
}
}
} catch (JSONException e) {
log("err--" + e.toString());
}
}
return items;
}
private String loadJsonFromAsset() {
InputStream stream;
try {
stream = getBaseContext().getAssets().open("json_list.txt");
if (stream != null) {
int size = stream.available();
byte[] buffer = new byte[size];
stream.read(buffer);
stream.close();
if (buffer != null) {
return new String(buffer);
}
}
} catch (IOException e1) {
log("err--" + e1.toString());
}
return "";
}
和JSON文件在资产
["item line 1","item line 2","item line 3"]
你并不需要阅读JSON成一个字符串。 Gson能够从'InputStream'解析。 – CommonsWare