当前位置: 首页 > 面试题库 >

com.google.gson.internal.LinkedHashTreeMap无法转换为我的对象

皇甫福
2023-03-14
问题内容

我有JSON文件,看起来像

{
    "SUBS_UID" : {
        "featureSetName" : "SIEMENSGSMTELEPHONY MULTISIM",
        "featureName" : "MULTISIMIMSI",
        "featureKey" : [{
                "key" : "SCKEY",
                "valueType" : 0,
                "value" : "0"
            }
        ]
    },
}

因此,键是字符串“ SUBS_ID”,值是一个名为FeatureDetails的模型,其中包含属性“
featureSetName,featureName,…”。所以我像这样使用google.json lib从JSON文件中读取内容,

HashMap<String, FeatureDetails> featuresFromJson = new Gson().fromJson(JSONFeatureSet, HashMap.class);

然后我试图遍历此HashMap以获取值并将其转换为我的FeatureDetails模型,

for (Map.Entry entry : featuresFromJson.entrySet()) {
                    featureDetails = (FeatureDetails) entry.getValue();
                }

这是我的FeatureDetails模型,

public class FeatureDetails {

    private String featureSetName;
    private String featureName;
    private ArrayList<FeatureKey> featureKey;
    private String groupKey;
    private String groupValue;

    public FeatureDetails() {
        featureKey =  new ArrayList<FeatureKey>();
    }

    public ArrayList<FeatureKey> getFeatureKey() {
        return featureKey;
    }

    public void setFeatureKey(ArrayList<FeatureKey> featureKey) {
        this.featureKey = featureKey;
    }

    public String getGroupKey() {
        return groupKey;
    }

    public void setGroupKey(String groupKey) {
        this.groupKey = groupKey;
    }

    public String getGroupValue() {
        return groupValue;
    }

    public void setGroupValue(String groupValue) {
        this.groupValue = groupValue;
    }

    public String getFeatureName() {
        return featureName;
    }

    public void setFeatureName(String featureName) {
        this.featureName = featureName;
    }

    public String getFeatureSetName() {
        return featureSetName;
    }

    public void setFeatureSetName(String featureSetName) {
        this.featureSetName = featureSetName;
    }
}

但出现异常“
com.google.gson.internal.LinkedHashTreeMap无法转换为com.asset.vsv.models.FeatureDetail”。


问题答案:

试试这个:

HashMap<String, FeatureDetails> featuresFromJson = new Gson().fromJson(JSONFeatureSet, new TypeToken<Map<String, FeatureDetails>>() {}.getType());

当您遍历哈希图时,请执行以下操作:

for (Map.Entry<String, FeatureDetails> entry : featuresFromJson.entrySet()) {
                    FeatureDetails featureDetails = entry.getValue();
}


 类似资料:
  • 我有JSON文件看起来像 所以这个键是一个字符串“SUBS_ID”,这个值是一个名为Feature细节的模型,它包含属性“特性设置名称、特性名称、...”。所以我用这样google.json库从JSON文件中读取, 然后我试图循环这个HashMap获取值,并将其转换为我的Feature细节模型, 这是我的FeatureDetails模型, 但我得到了一个例外"com.google.gson.int

  • 我创建了一个python脚本,并想把它给我的朋友。所以我去youtube看了这个视频(在尝试了很多其他视频之后)。我运行它,得到一个薄层色谱库错误。没问题,我找到了解决这个问题的答案,就在这里的堆栈流中。我输入这段代码(将Python35更改为36,并确保我的薄层色谱位于它所说的相同位置)。我运行它,但得到一个不同的错误,在我的cmd提示符中说 我只是想把我的游戏发送给朋友<请帮忙。我正在使用Py

  • 进入包1: 包含以下错误的包im:

  • 我试图通过在一个单独的线程上进行工作并返回所需的对象来更改JavaFX中的GUI。然而,在完成工作和任务之后。setOnSucceeded()在尝试检索创建的对象时被触发,并出现错误“不兼容类型:对象无法转换为VideoScrollPane类型”。 我认为这与原始类型有关,因为这是在听众中发生的,但环顾四周后,我找不到我想要的建议。 任何可以散发的光芒都将不胜感激。

  • 问题内容: 我要求Google帮我,我没有运气。:-(以下是产生错误的特定代码: 整个功能如下: 如果我错过了一些愚蠢的事情,请原谅我。谁能告诉我是什么引起了这个问题??? 问题答案: 问题在于$ uname是一个对象,而不是字符串。您需要调用$ uname的方法之一来访问数据。 应该这样做(或上述解决方案之一)。

  • 问题内容: 我在一个名为Film_Release的字段中有一个表,该表的字符串值格式为 2012 年 4月20日 ( 星期五) 我正在遍历,我想在日期时间将它们转换并将其推出到另一个表中。我的第二张表有一个名为Films_Date的列,其格式为DATE。我收到此错误 DateTime类的对象无法转换为字符串 然后,我通过插入命令将$ newdate插入表中。 为什么会出现这样的错误? 问题答案: