Чтобы прочитать текст сообщения, его необходимо десериализовать. Сообщение представляет собой строку JSON. В. Net наиболее распространенным способом сделать это является библиотека Newtonsoft . Если вы знаете элемент, который ищете, вы можете создать класс (или набор классов), чтобы десериализовать его в этот объект. Если вы не хотите создавать классы, вы можете использовать объекты Linq
и работать с ними для перемещения по JSON для поиска искомых данных.
Пример, который записывает данные Название ковша
var body = Newtonsoft.Json.Linq.JToken.Parse("{\n \"Records\": [\n {\n \"eventVersion\": \"2.1\",\n \"eventSource\": \"aws:s3\",\n \"awsRegion\": \"us-east-1\",\n \"eventTime\": \"2020-02-18T23:35:07.83Z\",\n \"eventName\": \"ObjectCreated:Put\",\n \"userIdentity\": {\n \"principalId\": \"AWS:AROAI32VQZJAYMFLW7AF6:i-000a08934cf25d02f\"\n },\n \"requestParameters\": {\n \"sourceIPAddress\": \"54.205.64.40\"\n },\n \"responseElements\": {\n \"x-amz-request-id\": \"0102C3F5984E4018\",\n \"x-amz-id-2\": \"P0M/58sCuaZfOJVKPdkyqPcbiYNLOqmgvYtWXh/0n01rcUwaYchzHj4FEIsBiBYJpwhc1pNh7khhMgC29/DpaYEARa+k5C+L\"\n },\n \"s3\": {\n \"s3SchemaVersion\": \"1.0\",\n \"configurationId\": \"c88ecc67-0746-4172-97a6-9e45a455483d\",\n \"bucket\": {\n \"name\": \"lbi-power-monitor-csvfiles-dev\",\n \"ownerIdentity\": {\n \"principalId\": \"ACJ7SDRW56IDB\"\n },\n \"arn\": \"arn:aws:s3:::lbi-power-monitor-csvfiles-dev\"\n },\n \"object\": {\n \"key\": \"Moderna+Therapeutics/2020/02/18/PowerMonitor-system-data-20200218-233511.csv\",\n \"size\": 77742,\n \"eTag\": \"768256930356a4958b299fa13406edc1\",\n \"sequencer\": \"005E4C74AFDC76715B\"\n }\n }\n }\n ]\n}");
Console.WriteLine(body["Records"][0]["s3"]["bucket"]["name"]);