假设我正在尝试获得这样的Json结构:
{
"rows": [
{
"date_str": "2016-07-01",
"sleep_7_or_more_hours": true,
"activity_minutes": "0",
"water_5_or_more_cups": true,
"fruit_veg_4_or_more_servings": true,
"physical_activity_description": "walking"
}
{
"date_str": "2016-07-02",
"sleep_7_or_more_hours": true,
"activity_minutes": "30",
"water_5_or_more_cups": true,
"fruit_veg_4_or_more_servings": true,
"physical_activity_description": "walking"
}
...etc
]
}
有关构建此Json的一些问题:
JsonArray
的名称?我需要在Json中将其命名为"rows"
。 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)
,没有添加数组的内容。我想念什么?编辑:我不使用Gson来序列化对象,因为Json由来自多个日志中的每个日志的数据项组成(甚至没有接近每个日志中的所有信息)。
最佳答案
JsonArray
是JsonElement
的实例。因此,方法.add("name", element)
(其中element是JsonArray
)应该可以正常工作。
关于java - 在Gson中,如何将JsonArray添加到JsonObject?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38642868/