我已经尝试了http://www.jsonschema2pojo.org/和RoboPOJOGenerator
如果您想尝试,我的JSON字符串就会受到打击。
{
"availableDates": {
"2017-12-31": {
"from": "08:00",
"to": "17:00"
},
"2017-12-21": {
"except": [
{
"from": "14:00:00",
"to": "14:10:00"
},
{
"from": "14:11:00",
"to": "14:21:00"
}
]
}
}
}
答案 0 :(得分:4)
1)转到http://www.jsonschema2pojo.org/
2)在此处粘贴您的回复并输入包裹和类名
3)选择目标语言为Java
4)源类型为Json
5)注释样式为Gson
6)单击预览
7)将这些类复制并粘贴到您的应用包
答案 1 :(得分:3)
你不能动态地这样做。虽然你可以使用HashMap解析这样的JSON。
如果您有兴趣这样做,请使用以下语法进行页面部分
private HasMap<String, Page> pages;
它会将页面的JSON解析为上面的HashMap。您将使用“1”,“2”等作为Key和Page作为其值。
根据您当前的JSON,解决方案将是
public class AvalDate {
private HashMap<String, AvailableTimeSlot> availableDates;
}
public class AvailableTimeSlot {
private String from;
private String to;
private ArrayList<ExceptTimeSlots> except;
}
public class ExceptTimeSlots {
private String from;
private String to;
}
现在您可以将解析后的值读取为
HashMap<String, AvailableTimeSlot> slots = avalDate.geAavailableDates();
Set keys = slots.keySet();
for (String date : keys) {
// Here date is 2017-12-31
AvailableTimeSlot avt = slots.get(date);
// You can check if except available or not
if (avt.getExcept() != null) {
// Read array list of except for that day
ArrayList<ExceptTimeSlots> except = avt.getExceps();
// Do whatever you want to do with array
} else {
// you can read from and to directlly
avt.getFrom();
avt.getTo();
}
}
答案 2 :(得分:0)
对于那些热心投票的新手 - SO用户,我知道这只是一个澄清,但我不能发表评论,所以在这里,我带着你的下选票祝福。
OP ,在this site中选择以下选项:
1)目标语言为 Java ,
2)源类型为 JSON ,
3)注释样式为 Gson
然后尝试生成POJO类。