簡體   English   中英

將 Json 字符串轉換為 JsonObject Object

[英]Convert Json String to JsonObject Object

我有以下 JSON:

{
     "insertId":"qxdo1se4pjcw",
     "logName":"projects,
      "protoPayload":{
          "type":"type.googleapis.com/google.cloud.audit.AuditLog",
          "authenticationInfo":{
             "principalEmail":"gserviceaccount.com"
          },
          "authorizationInfo":[
             {
                "granted":true,
                "permission":"bigquery.tables.updateData",
                "resource":"metrics_event",
                "resourceAttributes":{
                   
                }
             }
          ]
    }

我想將其轉換為 JSON object 以便稍后我們可以輕松參考每個 object 我的代碼:

 String msg = message.getData().toStringUtf8();
 JsonParser pa = new JsonParser();
 JsonObject obj = (JsonObject) pa.parse(msg);

我可以使用 get 方法訪問元素,但是如何訪問嵌套的元素,例如

obj.get("protoPayload" ) 工作正常,但如何訪問type

類似於obj.get("protoPayload").get("type")

使用來自 org.json 的普通 JSON

JSONObject json=new JSONObject(String source);

這會將有效的 JSON 字符串轉換為 JSON Object。

如果您想訪問 JSON 內的嵌套 object 並且您已經知道“密鑰”,那么您可以使用以下內容。

JSONObject 擴展了 HashMap,因此您可以簡單地將其用作 HashMap:

JSONObject jsonChildObject = (JSONObject)jsonObject.get("protoPayload");
for (Map.Entry in jsonChildOBject.entrySet()) {
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

使用obj.getJsonObject("protoPayload").get("type")

暫無
暫無

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

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