gson java.lang.ClassCastException:无法将其强制转换为

t5zmwmid  于 2022-11-06  发布在  Java
关注(0)|答案(1)|浏览(161)

我正在尝试将一个json解析为java对象。在这样做的时候,我得到了一个异常“java.lang.ClassCastException:无法将链接树Map转换为“。不知何故,有时候这段代码工作得很好。以下是代码。

import java.util.List;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.internal.LinkedTreeMap;

public class Preference3 {

    public static void main(String[] args) {
        String jsonString1 = "{\"ca\":{\"industry\":[{\"path\":\"/abc/global/choice/in/financial\",\"type\":\"checked\"},{\"path\":\"/abc/global/choice/in/asset-management\",\"type\":\"checked\"}]},\"fr\":{\"country\":[{\"path\":\"/abc/global/choice/in/country/europe/italy\",\"type\":\"checked\"},{\"path\":\"/abc/global/choice/in/country/europe/switzerland\",\"type\":\"checked\"},{\"path\":\"/abc/global/choice/in/country/europe/sweden\",\"type\":\"checked\"}],\"services\":[{\"path\":\"/abc/global/choice/in/technology\",\"type\":\"checked\"},{\"path\":\"/abc/global/choice/in/technology/technology-media\",\"type\":\"checked\"},{\"path\":\"/abc/global/choice/in/technology/media\",\"type\":\"checked\"},{\"path\":\"/abc/global/choice/in/technology/telecommunications\",\"type\":\"checked\"}]}}";

        Map<String, LinkedTreeMap<String, List>> map = new Gson().fromJson(jsonString1, LinkedTreeMap.class);
        for (Map.Entry<String, LinkedTreeMap<String, List>> letterEntry : map.entrySet()) {
            String territory = letterEntry.getKey();

        for (Map.Entry<String, List> nameEntry : letterEntry.getValue().entrySet()) {
            String preferenceType = nameEntry.getKey();
            JsonArray preferenceElements = (JsonArray) new Gson().toJsonTree(nameEntry.getValue());
            for (JsonElement preferenceElement : preferenceElements) {
                JsonObject preferenceObj = preferenceElement.getAsJsonObject();
                String preferencePath = preferenceObj.get("path").getAsString();
                    System.out.println(preferencePath);
            }
            }
        }
    }}

有没有其他更好的方法来解析这个json。我已经通过了一些博客,但没有找到任何其他的解决方案,并不能直接适应任何pojo。请帮助

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题