我正在使用GSON创建一个JSON文件,但这些数组没有名称。
我的结果:
[
{
"name": Jonh,
"date": "Feb 16, 2066",
"hour": "10:15:00 PM"
},
{
"name": Maria,
"date": "Feb 16, 2066",
"hour": "10:15:00 PM"
}
]
我需要什么:
{
"users": {
"user": [
{
"name": John,
"date": "Feb 16, 2066",
"hour": "10:15:00 PM"
},
{
"name": Maria,
"date": "Feb 16, 2066",
"hour": "10:15:00 PM"
}
]
}
}
有人知道如何将名称命名为数组?
- 编辑
我正在使用此代码生成我的JSON文件。
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("user/list")
public String getListUsers() throws Exception {
List<Object> list;
UserDAOImpl daoUser = new UserDAOImpl();
list = daoUser.listAllUsers();
Gson g = new Gson();
return g.toJson(list);
}
答案 0 :(得分:0)
您需要的是一个新的对象,您必须在其中放置列表并将该对象转换为JSON。
Gson gson = new GsonBuilder().create();
JsonArray jsonArray = gson.toJsonTree(list).getAsJsonArray();
JsonObject userJsonObject = new JsonObject();
jsonObject.add("user", jsonArray);
JsonObject usersJsonObject = new JsonObject();
jsonObject.add("users", usersJsonObject);
我没有尝试过代码。我希望你明白这一点。
答案 1 :(得分:0)
试试这个。
Map<String, List<Object>> user = new TreeMap<>();
user.put("user", list);
Map<String, Map<String, List<Object>>> users = new TreeMap<>();
users.put("users", user);
Gson gson = new Gson();
return gson.toJson(users);