私はタイプのJSONを持っている:解析、複雑なJSON:複数のループ対のクラス
{
"JobProcessors": [
{
"JobName": "ArchivalJob",
"IsEnabled": true,
"Batching": {
"BatchSize": 0,
"DegreeOfParallelism": -1
},
"Settings": {
"ArchivalJobCollectionPageSize": 50
}
},
{
"JobName": "AuditLogJob",
"IsEnabled": false,
"Batching": {
"BatchSize": 10,
"DegreeOfParallelism": -1
},
"Settings": {}
}
],
"ScheduledJobs": [
{
"JobName": "RemoteStartClientCommandJob",
"PrimaryAction": {
"ConnectionString": "#JobProcessorsIntegrationSBConnectionStringValue#",
"Settings": {
"LeadTimeInSeconds": "600",
"MaxSrsJobCount": 25
}
},
"ErrorAction": {
"ConnectionString": "#PairedJobProcessorIntegrationSBConnectionStringValue#",
"EntityPath": "remotestartqueue",
"Settings": {
"LeadTimeInSeconds": "600",
"MaxSrsJobCount": 25
}
}
}
]
}
私は"の下に来ているすべての「のJobName」のための「でIsEnabled」プロパティを確認したいですJobProcessors "カテゴリ。私が今まで使用してきたもののC#で は次のとおりです。
dynamic parsedJson = JsonConvert.DeserializeObject(reader.GetString(1));
foreach (var item in parsedJson)
{
foreach (var smallitem in item)
{
foreach (var tag in smallitem)
{
if(tag.IsEnabled.toString()=="true"){
Console.WriteLine("true");
}
}
}
}
これは私に「ScheduledJobs」のため、それはまた、反復し、その事実を除き、正しい結果を与えています。しかし、主な問題は、次のとおりです。
は、これは正しいか、これを行うための最も効率的な方法ですか?可能であれば、より良い方法を提案する。
私が知っているものはクラスを使用していますが、私は事前にjson構造を知らないかもしれません。また、ジェンソンは非常に巨大なので、クラスを作ることは面倒なことがあります!
あなたはdynamic' 'に解析しているのはなぜ?あなたの構造を表現するために強く型付けされたオブジェクトを作成することをお勧めします。 – haim770
forループを使ってforeachを切り替えます。 forループは、常により速く、各ループにつきます。 –
@ haim770私はクラスの構造を事前に知っていないかもしれません。 – Arushi