2017-02-21 11 views
0

Я получаю файлы журналов из AWS CloudTrail. По большей части они согласуются, но некоторые свойства имеют разные формы. Например:C# JSON.NET Анализ динамического объекта JSON от AWS CloudTrail

{ 
    ... 
    requestParameters: { 
    repositoryName: "Test", 
    branchName: "master" 
    }, 
    ... 
} 

в то время как другие времена я получаю что-то вроде:

{ 
    ... 
    requestParameters: { 
    encryptionContext: { 
     aws:codecommit:env-alg: "AES/256", 
     aws:codecommit:sig-alg: "HmacSHA256/256", 
     aws:codecommit:id: "117a18c1-4b40-489f-af07-da1ecd36eccf" 
    }, 
    "someotherkey" : "key" 
    }, 
    ... 
} 

Так что это на самом деле не конкретный AWS вопрос, хотя другие могут решать это с CloudTrail уже. Каков наилучший способ взять эти предоставленные строки JSON и преобразовать их в объекты .NET? Что-то вроде следующего наилучшим образом?

public class CloudTrailRecord 
{ 
    ... 
    public string EventId { get; set; } 
    public Dictionary<string, dynamic> RequestParameters { get; set; } 
    ... 
} 

Или есть способ просто захватить данные requestParameters в виде строковых данных независимо от того, как они предоставляются?

ответ