将Json字符串转换为JsonObject对象



我有以下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对象,这样以后我们就可以很容易地引用每个对象我的代码:

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对象。

如果您想访问JSON中的嵌套对象,并且您已经知道";键";,那么您可以使用以下内容。

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")

最新更新