簡體   English   中英

轉換地圖 <String, Object> 到json

[英]Converting Map<String, Object> to json

我有一張叫做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>();

用戶類中的用戶對象-

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中獲取相應的布爾值,其中"canApprove"responseObj引用了Object

  3. 我可以將"userId" and "roleId"User"userId" and "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}

(格式化)

您可以嘗試使用JSONObject將地圖解析為JSON。

Maven依賴項是:

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20140107</version>
    </dependency>

稍后創建一個新的JSON對象並傳遞地圖

JSONObject obj = new JSONObject(responseObj);

並將對象返回到此Web客戶端。

new com.google.gson.Gson().toJson(responseObj);

您可以使用一些json序列化庫來為您完成這項工作,例如fastjsongson

1,將依賴項jar導入項目中,如果使用maven,則將<dependency>節點添加到pom.xml中,或者將jar放入項目的庫文件夾中

2. String jsonString = JSON.toJSONString(responseObj); (使用fastjson)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM