Как эффективно использовать подстроку в C# в приведенной ниже ситуации
у меня есть текстовый файл EventInput.txt с содержанием:
--------------------------------------------------------
{ "@odata.type" : "#Event.1.0.0.Event", "Events" : [ { "EventID" : "9ea74dad-9e33-5549-b2ea-a80217d82315", "EventTimestamp" : "2017-09-07T10:36:47Z", "EventType" : "Alert", "MessageArgs" : [ "Port 1I Box 1 Bay 5", "Slot 0" ], "MessageID" : "iLOEvents.0.9.DrvArrPhysDrvErasing", "OriginOfCondition" : "/rest/v1/Systems/1/SmartStorage/ArrayControllers/2/DiskDrives/20", "Severity" : "Warning" } ], "Name" : "Events", "Type" : "Event.1.0.0" }
---------------------------------------------------
Мне нужна следующая информация из него в c#:
EventID=9ea74dad-9e33-5549-b2ea-a80217d82315
EventTimestamp=2017-09-07T10:36:47Z
Тип События=Предупреждение
MessageArgs=Port1I, Box1, Bay 5, Слот 0
Код сообщения=iLOEvents.0.9.DrvArrPhysDrvErasing
OriginOfCondition=/rest/v1/Systems/1/SmartStorage/ArrayControllers/2/DiskDrives/20
Серьезность=Предупреждение
Что я уже пробовал:
я опробовал следующий код для извлечения EventTimestamp. Не могли бы вы предложить лучшие способы решить эту проблему:
class Program { static void Main(string[] args) { string stringEventReceived =System.IO.File.ReadAllText(@"C:\EventInput.txt"); Console.WriteLine("EVENT LOG FILE text:" + stringEventReceived); string stringToFind = "EventTimestamp"; bool stringMatchResult = stringEventReceived.Contains(stringToFind); if (stringMatchResult) { int index = stringEventReceived.IndexOf(stringToFind); if (index >= 0) Console.WriteLine("{0} begins at character position {1}", stringToFind, index + 1); } string RESULT = stringEventReceived.Substring(143, 40); Console.WriteLine("RESULT TIMESTAMP: \n" + RESULT); Console.ReadKey(); } }