使用JavaEE从对象列表创建具有JsonArray的JsonObject
我想从对象列表中创建一个JSONARRAY,并将其添加到JsonObject中,反之亦然。 我正在使用javax.json-api-1.0库。 这是我尝试过的,但不起作用。我得到的结果是{“type”:“friends_list”,“array”:[]}使用JavaEE从对象列表创建具有JsonArray的JsonObject,java,json,Java,Json,我想从对象列表中创建一个JSONARRAY,并将其添加到JsonObject中,反之亦然。 我正在使用javax.json-api-1.0库。 这是我尝试过的,但不起作用。我得到的结果是{“type”:“friends_list”,“array”:[]} 公共静态void main(字符串[]args){ 列表用户=新建ArrayList(); UserModel user1=新的UserModel(0,“名称1”name1@gmail“,”在线“); UserModel user2=新的Us
公共静态void main(字符串[]args){
列表用户=新建ArrayList();
UserModel user1=新的UserModel(0,“名称1”name1@gmail“,”在线“);
UserModel user2=新的UserModel(1,“name2”name2@gmail“,”离线“);
users.add(user1);
users.add(user2);
JsonObject jo=来自用户列表(用户);
System.out.println(jo.toString());
}
ListofUsers(列表用户)中的公共静态JsonObject{
JsonArrayBuilder jsonArray=Json.createArrayBuilder();
for(用户模型用户:用户){
添加(Json.createObjectBuilder()
.add(“id”,user.getId())
.add(“name”,user.getName())
.add(“email”,user.getEmail())
.add(“online_status”,user.getOnline_status()).build());
}
jsonArray.build();
JsonObject obj=Json.createObjectBuilder()
.添加(“类型”、“朋友列表”)
.add(“数组”,jsonArray)
.build();
返回obj;
}
您得到了什么结果?已编辑。再次检查在循环中创建JsonObject时,您忘了执行build()对我有用谢谢
public static void main(String[] args) {
List<UserModel> users = new ArrayList<>();
UserModel user1 = new UserModel(0, "name1", "name1@gmail", "online");
UserModel user2 = new UserModel(1, "name2", "name2@gmail", "offline");
users.add(user1);
users.add(user2);
JsonObject jo = fromListOfUsers(users);
System.out.println(jo.toString());
}
public static JsonObject fromListOfUsers(List<UserModel> users) {
JsonArrayBuilder jsonArray = Json.createArrayBuilder();
for (UserModel user : users) {
jsonArray.add(Json.createObjectBuilder()
.add("id", user.getId())
.add("name", user.getName())
.add("email", user.getEmail())
.add("online_status", user.getOnline_status()).build());
}
jsonArray.build();
JsonObject obj = Json.createObjectBuilder()
.add("type","friends_list")
.add("array", jsonArray)
.build();
return obj;
}