【发布时间】:2021-03-25 12:10:36
【问题描述】:
我正在尝试解析我收到的一些复杂 JSON 以将其转换为 C# 模型,以便我可以分析和操作数据。我曾尝试通过使用 JSON 将 JSON 转换为 C#,但是当名称是动态的时它不能很好地工作。我想专注于数据。
Item1 和 SubItem1 等都是可变字符串,所以我无法硬编码模型来拉取它们,而文本只是其中的一个字符串。我遇到的问题是如何将 JSON 转换为可用格式以访问 Item1、SubItem1 和文本值来操作它们的数据。
我已经按照其他地方的建议查看了字典,但我没有运气。
我尝试过的模型
public class Data
{
public string Status { get; set; }
public ResultInfo ResultInfo { get; set; }
public string Message { get; set; }
public Dictionary<string, SubData> Data {get;set;}
}
public class SubData
{
public Dictionary<string,List<string>> item {get;set;}
}
JSON
{
"Status": "OK",
"ResultInfo": {
"Prev": "PageUPURL",
"Next": "PageDownURL",
"total_count": "37",
"per_page": "3",
"page": "1"
},
"Message": "Ok.",
"Data": {
"Item1": [
{
"SubItem1": [
"Text"
]
}
],
"Item2": [
{
"SubItem2": [
"Text",
"Text",
"Text"
]
}
],
"Item3": [
{
"SubItem3": [
"Text"
]
},
{
"SubItem4": [
"Text"
]
}
]
}
}
我们将不胜感激地收到任何建议、建议或帮助。
【问题讨论】:
-
我认为您只是错过了一级
public Dictionary<string, List<Dictionary<string, List<string>>>> Data { get; set; },因为ItemX后面跟着[,它是一个列表或数组。 -
将您的数据更改为
public Dictionary<string, List<SubData>> Data {get;set;} -
对于那些您可以使用app.quicktype.io 的人,只需将要强制字典的属性名称重命名为 "1","2" 。瞧。
-
感谢您的帮助!我非常讨厌它,因为您错过了导致问题的一件小事!
-
我认为我们都没有,请尝试我们的建议。因为我手头没有IDE。我们可能错了。所以先试试吧^^