3 回答

TA贡献1793条经验 获得超6个赞
您可以使用TypeToken将json字符串加载到自定义对象中。
logs = gson.fromJson(br, new TypeToken<List<JsonLog>>(){}.getType());

TA贡献1789条经验 获得超8个赞
您的JSON示例为:
{
"status": "ok",
"comment": "",
"result": {
"id": 276,
"firstName": "mohamed",
"lastName": "hussien",
"players": [
"player 1",
"player 2",
"player 3",
"player 4",
"player 5"
]
}
因此,如果您想将模块的数组列表保存在SharedPrefrences中,则:
1-将使用此方法将返回的arraylist转换为json格式
public static String toJson(Object jsonObject) {
return new Gson().toJson(jsonObject);
}
2-将其保存在共享的偏好中
PreferencesUtils.getInstance(context).setString("players", toJson((.....ArrayList you want to convert.....)));
3-随时检索它从共享首选项中获取JsonString
String playersString= PreferencesUtils.getInstance(this).getString("players");
4-再次将其转换为数组列表
public static Object fromJson(String jsonString, Type type) {
return new Gson().fromJson(jsonString, type);
}
ArrayList<String> playersList= (ArrayList<String>) fromJson(playersString,
new TypeToken<ArrayList<String>>() {
}.getType());
如果您想解析对象的ArrayList,此解决方案也是可行的。希望通过使用Gson Library帮助您。
添加回答
举报