生成json到一个独特的自定义类

时间:2017-11-06 16:51:44

标签: java json serialization initialization gson

我是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类,但在这种情况下我不明白如何使用它。

2 个答案:

答案 0 :(得分:0)

您可以使用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);

希望对你有所帮助。

答案 1 :(得分:0)

对我有用的解决方案是:

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

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