我有一个JSON文件,我试图将其转换为一个以字典为值的列表,但在获得一个好格式的输出时遇到了困难,并且在转换后难以索引/解析它。我是新来的,希望能得到帮助。我希望键/值对看起来像这样:{“问候”:[“greet1”:“hey”,“greet2”:“hi”]}
下面的JSON文件:
{
"greeting": [
{
"greet1": "hey",
"greet2": "hi"
}
],
"bye": [
{
"bye1": "adios"
}
]
}
尝试的代码:
public static Dictionary<string, List<Dictionary<string, string>>> jsonResponses = new Dictionary<string, List<Dictionary<string, string>>>();
public static void DeserializeJsonDict()
{
string jsonURL = HttpContext.Current.Server.MapPath("./theFile.json");
using (var webClient = new System.Net.WebClient())
{
var jsonData = webClient.DownloadString(jsonURL);
jsonResponses = JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, string>>>>(jsonData);
}
}
3条答案
按热度按时间xv8emn3q1#
您可以直接引用属性,例如:
data.greeting
。另外,还有一种方法可以遍历转换结果-使用KeyValuePair<string, dynamic>
作为泛型类型参数,可以让您遍历动态值,例如。https://dotnetfiddle.net/UUvMeA
wribegjk2#
当前json格式的问题是,“greeting”和“bye”将被用作格式化中的键。这可以防止对象被转换为列表或数组。
如果JSON是通过手动编辑文件创建的,则如果将其更改为
.它可以具体描述如下:
标签:C# - Deserialize array of JSON objects into Dictionary
fiei3ece3#