簡體   English   中英

生成json到唯一的自定義類

[英]generate json to a unique custom class

我對Java非常陌生,只是從json開始...

我有以下json文件:

"step1": {
    "version": 1,
    "items": {
        "run": false,
        "jump": true
    }
},
"step2": {
    "version": "None",
    "items": {
        "happy": true,
        "sad": false
    }
}

我在我的主要應用中使用Gson是這樣的:

Gson gs = new Gson();
Content tmp = gs.fromJson(<json string>, Content.class);

我的課:

public class Content {
    @SerializedName("step1")
    private Step step1;

    @SerializedName("step2")
    private Step step2;
}

每個步驟類:

public class Step{
    @SerializedName("version")
    private String version;

    @SerializedName("items") 
    ???????
}

如您所見,“ ?????” 部分是我想了解的內容-如何在不知道字段名稱的情況下轉換項目? 意味着HashMap /另一個可迭代對象。 我可以使用方法進行初始化嗎?

我嘗試使用構造函數創建Item類,但是在這種情況下我不明白如何使用它。

您可以使用Map<String, Boolean>來存儲項目。 您的Step類可以是這樣的:

public class Step {
    private String version;
    private Map<String, Boolean> items;
}

然后,您可以將值添加到地圖:

    Step step = new Step();
    step.setVersion("None");

    Map<String, Boolean> items = new HashMap<>();
    items.put("happy", Boolean.TRUE);
    items.put("sad", Boolean.FALSE);
    step.setItems(items);

希望對您有幫助。

對我有用的解決方案是:

public class Step{
    @SerializedName("version")
    private String version;

    @SerializedName("items") 
    private HashMap<String,Boolean> items;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM