App Engine Servlet:如何解析包含JSON编码消息的请求主体?

时间:2016-01-04 22:21:04

标签: json google-app-engine servlets google-cloud-storage

我使用云存储对象更改通知来通知我的App Engine服务器已上载新文件。对象更改通知作为POST请求发送到App Engine中的servlet。

请求正文包含JSON编码的消息,如以下通知请求示例所示,直接从Google文档(https://cloud.google.com/storage/docs/object-change-notification)复制:

{
"kind": "storage#object",
"id": "BucketName/ObjectName",
"selfLink": "https://www.googleapis.com/storage/v1/b/BucketName/o/ObjectName",
"name": "ObjectName",
"bucket": "BucketName",
"generation": "1367014943964000",
"metageneration": "1",
"contentType": "binary/octet-stream",
"updated": "2013-04-26T22:22:23.832Z",
"size": "10",
"md5Hash": "xHZY0QLVuYng2gnOQD90Yw==",
"mediaLink": "https://www.googleapis.com/storage/v1/b/BucketName/o/ObjectName?generation=1367014943964000&alt=media",
....
}

我的问题是将JSON内容解析为java对象的最佳解决方案是什么?我想最好的方法是使用像谷歌gson,但有没有特别推荐与App Engine一起使用?还是其他更好的方式?

谢谢!

1 个答案:

答案 0 :(得分:0)

最后我使用了Google gson库,因为我只想解析JSON的几个元素,所以我使用了以下代码:

JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(req.getReader()).getAsJsonObject();
String objectName = obj.get("name").getAsString();
String objectBucket = obj.get("bucket").getAsString();

效果很好。