java - 将 Map<String, Object> 转换为 json

标签 java json jsp gson

我有一个名为responseObj的 map

Map<String, object> responseObj = new HashMap<String, Object>();

我在responseObj中添加了一些值,如下所示 -

responseObj.put("canApprove", true); //1
responseObj.put("approvers", userList);

userList 是一个或多个用户的列表 -

List<User> userList = new ArrayList<User>();

来自 User 类的用户对象 -

class User {
 private int userId;
 private int roleId;
}

现在我有一些问题 -

  1. 是否可以将 responseObj 转换为 json,以便 "canApprove""approvers" 成为 json 的键(请参阅下面的代码片段)以及如何制作它?

    {
     "canApprove" : true,
     "approver": [
    {
      "userId": 309,
      "roleId": 2009
    },
    {
      "userId": 3008,
      "roleId": 2009
    },
    

    ] }

  2. 如果我将其转换为 json 并从 jsp 获取响应,我可以在 jsp 中获取适当的 boolean 值,其中 "canApprove" 引用 ObjectresponseObj 中?

  3. 我可以将 User 类中的 “userId”和“roleId” 持久保存为 JSON 吗?

最佳答案

试试这个:

public static class User
{
    public User(int userId, int roleId)
    {
        this.userId = userId;
        this.roleId = roleId;
    }
    private int userId;
    private int roleId;
    public int getUserId()
    {
        return userId;
    }
    public int getRoleId()
    {
        return roleId;
    }
    public void setUserId(int userId)
    {
        this.userId = userId;
    }
    public void setRoleId(int roleId)
    {
        this.roleId = roleId;
    }
}

测试:

Map<String, Object> responseObj = new HashMap<String, Object>();
List<User> userList = new ArrayList<User>();
userList.add(new User(1, 1));
userList.add(new User(2, 2));
responseObj.put("canApprove", true); //1
responseObj.put("approvers", userList);

System.out.println(new JSONObject(responseObj));

打印:

{"approvers":[{"userId":1,"roleId":1},{"userId":2,"roleId":2}],"canApprove":true}

(formatted)

关于java - 将 Map<String, Object> 转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26911603/

相关文章:

json - 如何使用 .Net/Parse.com 发送 API 推送消息? (C#)

python - 在表格单元格中填充颜色

java - 我的文本框消息没有上传到数据库中?

java - HTML 按钮事件和选定的复选框

java - 如何在 Java 中重定向请求时在 HTTP header 中传递数据

java - 在java混淆中创建对象对象

java - 使用 for each loop 和 Map 创建 JSON 文件 - 它在 for 循环的所有迭代中重复第一个元素值

java - Play Framework : incompatible types: java. util.List<models.Vehicle> 无法转换为 java.lang.String

java - bean 有什么讲究?

java - 如何将数据从jsp传递到servlet?