当前位置: 首页 > 知识库问答 >
问题:

用GSON解析Android JSON崩溃:LinkedTreeMap不能转换为对象

戈嘉慕
2023-03-14
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to appuccino.simplyscan.Objects.Folder
            at appuccino.simplyscan.Extra.DocumentAdapter.getView(DocumentAdapter.java:117)
Folder folder = folderList.get(position);
//folderList is a List<Folder> folderList = new ArrayList<>();
folderList.add(0, newFolder);
Gson gson = new Gson();
String newFoldersJson = gson.toJson(folderList);
PrefManager.putString(PrefManager.FOLDER_JSON, newFoldersJson);
 public static List<Folder> loadFolders(MainActivity main){
        //JSON containing a list of folder objects
        String foldersJSON = PrefManager.getString(PrefManager.FOLDER_JSON, "");
        if(!foldersJSON.isEmpty()){
            Gson gson = new Gson();
            List<Folder> folderList = gson.fromJson(foldersJSON, List.class);
            return folderList;
        }

        return new ArrayList<>();
    }
public class Folder {
    private String name;
    private List<String> docNameList;
    private transient List<Document> docList;

    public Folder(String n) {
        name = n;
        docList = new ArrayList<>();
        docNameList = new ArrayList<>();
    }

}

共有1个答案

林鸿飞
2023-03-14

不是对你问题的回答,而是一个建议。我最近也在尝试在Android中使用json,并研究了很多关于使用jackson还是GSON的问题。似乎杰克逊有两个优点:

  1. 杰克逊的表现优于GSON。
  2. 如果在服务器端使用相同的方法,则可以获得一致性。

参考:[be-lazy-profaction-android][1]http://java.dzone.com/articles/be-lazy-profaction-android

 类似资料:
  • 问题内容: 我知道以前曾问过这个问题。由于我的Java和android新手技能。我不能解决这个问题超过一个星期。 我和我的一个朋友开发了一个android项目,那里有几件事。 这件事中最奇怪的部分是,它仅在我从Google Play商店下载并对其进行测试时才发生。不是从本地android studio安装或调试模式。 这可能是什么问题,或者此返回列表完全错误?我的朋友说服此代码可以正确返回,但是从

  • 最奇怪的是,只有当我从Google play商店下载并测试它时,它才会发生。不是从本地android studio安装或调试模式。 这里的问题是什么,或者这个返回列表是完全错误的?我的朋友确信,这段代码返回正确,但从play store安装,它总是一个错误。 请建议我在哪里继续挖掘? 例外是 java.lang.ClassCastException:com.google.gson.internal

  • 问题内容: 使用来反序列化参数化类的对象会导致的某些值,例如对于由和字段组成的简单类型: 有趣的是,当内联调用方法时,相同的代码也可以工作,即以下语句返回有效值: 的定义也很简单: 将方法更改为非静态不能解决问题。 有任何想法吗? 问题答案: 您想要我的解决方案是ParameterizedType 问题是T,因为Java不知道我的种类并生成T的类型 这是测试更多示例以纠正运行测试 testCont

  • 我试图将JSON文件中的数据显示到Listview中,但是我得到了以下解析错误。 下面是我的JSON文件: 下面是我的代码:

  • 问题内容: 我正在学习本教程:如何使用Android Keystore存储密码和其他敏感信息 。它(宽松地)与Google示例应用程序BasicAndroidKeyStore绑定在一起。 我可以使用公钥加密数据,也可以在运行Lollipop的设备上解密。但是我有一个运行棉花糖的Nexus 6,它崩溃了,并显示错误消息: 这是它崩溃的代码: 我不愿意将此归结为Android M怪异之处,因为我认为没

  • 我想将以下字符串作为json发布到服务器。 {“FirstName”:“John”,“LastName”:“Smith”},{“FirstName”:“John”,“LastName”:“Smith”} 但是如果我使用下面的代码,我会得到json对象的数组列表。 输出: [{"FirstName":"John","LastName":"Smith" }, { "FirstName":"John",