假设我试图获得这样的Json结构:
JsonArray
关于构建这个Json的一些问题:
"rows"
的名称?我需要在Json中命名JsonArray
。rows
JsonObject
添加到JsonArray rows = new JsonArray();
//Code to get local dates omitted
for (LocalDate date = start; !date.isAfter(end); date = date.plusDays(1))
{
JsonObject row = new JsonObject();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-mm-dd", Locale.ENGLISH);
String dateString = date.format(formatter);
row.addProperty("date_str", dateString);
boolean sleptLongEnough = (sleepLog.getTimeInBed(getDate(date)) > (7 * 60));
row.addProperty("sleep_7_or_more_hours", sleptLongEnough);
int activityMinutes = (activitiesLog.getMinutesVeryActive(getDate(date)) + activitiesLog.getMinutesFairlyActive(getDate(date)));
...
//Omitted extra code
rows.add(row);
}
JsonObject logs = new JsonObject();
//add rows to logs here.
(我假设这是外括号的含义)?这是我用来执行此操作的代码:
rows
我需要将logs
添加到JsonObject
。但是,.add(JsonElement)
似乎只有.addProperty(String, variousTypes)
和popis
,并且没有添加数组的内容。我错过了什么?
编辑:我没有使用Gson序列化对象,因为Json由来自多个日志中的每一个的数据项组成(甚至不接近每个日志中的所有信息)。
答案 0 :(得分:13)
JsonArray
是JsonElement
的一个实例。因此,方法.add("name", element)
,其中元素是JsonArray
,应该可以正常工作。
答案 1 :(得分:1)
您可以使用方法JsonObject.add()
添加JsonElement
,JsonArray
继承自:{/ p>
logs.add("rows", rows)
然后在反序列化时,您可以将其强制转换为JsonArray