我使用云存储对象更改通知来通知我的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一起使用?还是其他更好的方式?
谢谢!
答案 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();
效果很好。