我有以下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")