我一直在试验 JSON.net,我有一个复杂的 JSON 文件。我可能不会使用顺序循环来搜索我的数据,所以我认为我需要使用字典才能输入我需要的键并获取相关对象。
我已经能够将 json 反序列化为字典,但这仅来自第一个节点。在继续之前,我将首先向您展示 JSON(数据量很大,因此我将其缩短),json 中有错误,但您了解 JSON
{
"response": {
"dsCompanyContract": {
"dsCompanyContract": {
"ttEmployee": [
{
"empUID": 467775,
"empNameFirst": "Name1",
"empNameLast": "lastname",
"empFunction": "TECHNICUS AUTOTECHNIEK",
"ttContract": [
{
"UID": 1,
"empUID": 467775,
"refkey": "1_1808630",
"datStart": "2013-05-27",
"datStop": "2013-05-31",
"regime": 1,
"state": "CONTRACTED",
"ttScheduleDay": [
{
"ContractUID": 1,
"dat": "2013-05-27",
"dateTimeStart": "2013-05-27T08:00:00.000",
"dateTimeStop": "2013-05-27T17:00:00.000",
"duration": 8
},
{
"ContractUID": 1,
"dat": "2013-05-28",
"dateTimeStart": "2013-05-28T08:00:00.000",
"dateTimeStop": "2013-05-28T17:00:00.000",
"duration": 8
},
{
"ContractUID": 1,
"dat": "2013-05-29",
"dateTimeStart": "2013-05-29T08:00:00.000",
"dateTimeStop": "2013-05-29T17:00:00.000",
"duration": 8
},
{
"ContractUID": 1,
"dat": "2013-05-30",
"dateTimeStart": "2013-05-30T08:00:00.000",
"dateTimeStop": "2013-05-30T17:00:00.000",
"duration": 8
},
{
"ContractUID": 1,
"dat": "2013-05-31",
"dateTimeStart": "2013-05-31T08:00:00.000",
"dateTimeStop": "2013-05-31T16:00:00.000",
"duration": 7
}
]
}
]
}
]
}
]
}
}
}
}
我想要完成的是制作一本字典:
所有 ttEmployees(键:empUID)
ttEmployee 中的所有 ttContracts(带有键:UID)
ttContracts 中的所有 ttScheduleDays(键:dat)
我已经能够做到这一点,但我正在循环遍历列表中的所有对象,然后手动将它们添加到库中。我想知道我怎样才能更快地做到这一点?此时我正在使用:
obj = JsonConvert.DeserializeObject<IDictionary<string, Response>>(
newFormatJSON, new JsonConverter[] { new JSONDictionaryConverter() });
这制作了一个根元素的字典,从这里开始我开始循环遍历数据并将对象添加到自制的字典中
JSON.net 的问题我找到了如何转换为字典的示例,但不是复杂的 JSON。在它制作字典之前,我首先必须跳过几个节点。
任何帮助将不胜感激,我会在需要/请求时更新。
提前致谢。