我有一张名为responseObj的地图
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;
}
现在我有一些问题 -
是否可以将responseObj
转换为json,以便"canApprove"
和"approvers"
成为json的关键(请参阅下面的代码片段)以及如何制作它?
{
"canApprove" : true,
"approver": [
{
"userId": 309,
"roleId": 2009
},
{
"userId": 3008,
"roleId": 2009
},
] }
如果我将其转换为json并从jsp获取响应,我可以在jsp中获取相应的布尔值,其中"canApprove"
引用Object
中的responseObj
吗?
我可以将"userId" and "roleId"
保留在User
类的JSON中吗?
答案 0 :(得分:4)
试试这个:
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}
答案 1 :(得分:2)
您可以尝试使用JSONObject将地图解析为JSON。
maven依赖是:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
稍后创建一个新的JSON对象并传递地图
JSONObject obj = new JSONObject(responseObj);
并将对象返回此Web客户端。
答案 2 :(得分:0)
new com.google.gson.Gson().toJson(responseObj);
答案 3 :(得分:0)