[英]Accessing key and values of a dictionary within a dictionary
我有以下文件:
{ "Ti": 12,
"IES": false,
"End": {
"ABC": "test1",
"XYZ": "test2",
"QWE": "test3"
}
我有以下 C# 代碼,它通過 class 獲取這些值:
foreach (var prop in _ABC.GetType().GetProperties())
{
_dic.Add(prop.Name, _ABC.GetType().GetProperty(prop.Name).GetValue(_ABC, null).ToString());
}
這不會給我現有字典中字典的值/鍵。 class ABC 如下所示:
public class ABC
{
public string Ti { get; set; }
public string IES { get; set; }
public End End { get; set; }
}
public class END
{
public string ABC { get; set; }
public string XYZ { get; set; }
public string QWE { get; set; }
}
我怎樣才能使循環進一步進入 go 以訪問.END
class 的值
您可以嘗試反序列化內容。 它更健壯,更不容易出錯。
--編輯--
改變一些類型:
Ti
從string
到int
IES
從string
到bool
End
到Dictionary<string, string>
END
public class ABC
{
public int Ti { get; set; }
public bool IES { get; set; }
public Dictionary<string, string> End { get; set; }
}
反序列化代碼:
using System.Collections.Generic;
using System.Text.Json;
//[...]
var fileContent = @"{ ""Ti"": 12,
""IES"": false,
""End"": {
""ABC"": ""test1"",
""XYZ"": ""test2"",
""QWE"": ""test3""
}
}";
var abc = JsonSerializer.Deserialize<ABC>(fileContent);
Console.WriteLine($"Ti: {abc.Ti}");
Console.WriteLine($"IES: {abc.IES}");
foreach (var key in abc.End.Keys)
{
Console.WriteLine($"End.{key}: {abc.End[key]}");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.