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