从复杂的JSON到字典

时间:2013-07-02 15:22:13

标签: asp.net json json.net

我一直在尝试使用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() });

这使得rootelement的字典,从这里开始循环数据并将对象添加到自制字典

JSON.net的问题我找到了如何转换为字典的示例,但没有使用复杂的JSON。我首先要在制作字典之前跳过几个节点。

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

提前致谢。

0 个答案:

没有答案