我有一个json文件,其中有JSONObject
数组,阅读并转换为字符串后,我想创建一个ArrayList
的Java对象,以下是我目前的代码:
ArrayList<CountryCode> arrayList;
arrayList = new ArrayList<CountryCode>();
try {
InputStream ims = context.getResources().getAssets().open("json/" + "countryCodes.json");
reader = new InputStreamReader(ims);
int size = ims.available();
byte[] buffer = new byte[size];
ims.read(buffer);
ims.close();
json = new String(buffer, "UTF-8");
arrayList = gson.fromJson(json , ArrayList.class);
Log.i("countrycode", String.valueOf(arrayList.get(0).getCode()));
} catch (IOException e) {
e.printStackTrace();
}
其中CountryCode是模型类,具有名称、国家代码字段,这是来自JSONObjects的Map(每个json对象都具有名称和国家代码)
获取错误:
类转换异常错误:无法将链接树Map强制转换为对象
3条答案
按热度按时间rmbxnbpk1#
您需要像这样定义类型列表:
ajsxfq5m2#
使用
TypeToken
而不是ArrayList.class
如果gson高于2.8.0,也可以使用此功能
dfty9e193#
参考以下代码