Сервлет App Engine: как проанализировать тело запроса, содержащее JSON-кодированное сообщение?

Я использую уведомление об изменении объекта облачного хранилища, чтобы уведомить сервер App Engine о том, что был загружен новый файл. Уведомление об изменении объекта отправляется в виде запроса POST сервлету в App Engine.

Тело запроса содержит сообщение в кодировке 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? Я думаю, что лучше всего было бы использовать такую ​​библиотеку, как, например, Google gson, но есть ли какая-нибудь, особенно рекомендованная для использования с App Engine? Или любой другой способ лучше?

Спасибо!

1 ответ

Наконец, я использовал библиотеку 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();

Работает отлично.

Другие вопросы по тегам