1

我一直在试验 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。在它制作字典之前,我首先必须跳过几个节点。

任何帮助将不胜感激,我会在需要/请求时更新。

提前致谢。

4

0 回答 0