C# 如何处理JSON响应,该响应有时返回数组,有时返回C中的对象#

C# 如何处理JSON响应,该响应有时返回数组,有时返回C中的对象#,c#,json,C#,Json,我有一个JSON响应,当有超过1个元素时,它有时返回一个数组,当只有一个元素时,它只返回一个对象 大概是这样的:- "JLLBrokerAllocations": { "JLLBrokerAllocation": [ { "AllocPercent": 50, "Amount": 4, "Email": "", "EmpId": 214309

我有一个JSON响应,当有超过1个元素时,它有时返回一个数组,当只有一个元素时,它只返回一个对象

大概是这样的:-

"JLLBrokerAllocations": {
          "JLLBrokerAllocation": [
            {
              "AllocPercent": 50,
              "Amount": 4,
              "Email": "",
              "EmpId": 214309,
              "EmpLoginId": "Carlin.Power",
              "EmpName": "Power, Carlin",
              "Id": 1147842,
              "LeadBroker": true,
              "MarketId": "AM0001",
              "Markets": "",
              "OpUnitId": 250050,
              "OpUnits": ""
            },
            {
              "AllocPercent": 50,
              "Amount": 4,
              "Email": "",
              "EmpId": 999111,
              "EmpLoginId": "Sai.Abhiram",
              "EmpName": "Abhiram, Sai",
              "Id": 1147843,
              "LeadBroker": true,
              "MarketId": "AM2900",
              "Markets": "",
              "OpUnitId": 200028,
              "OpUnits": ""
            }
          ]
        },
"JLLBrokerAllocations": {
          "JLLBrokerAllocation": 
            {
              "AllocPercent": 50,
              "Amount": 4,
              "Email": "",
              "EmpId": 214309,
              "EmpLoginId": "Carlin.Power",
              "EmpName": "Power, Carlin",
              "Id": 1147842,
              "LeadBroker": true,
              "MarketId": "AM0001",
              "Markets": "",
              "OpUnitId": 250050,
              "OpUnits": ""
            }
}
有时是这样的:-

"JLLBrokerAllocations": {
          "JLLBrokerAllocation": [
            {
              "AllocPercent": 50,
              "Amount": 4,
              "Email": "",
              "EmpId": 214309,
              "EmpLoginId": "Carlin.Power",
              "EmpName": "Power, Carlin",
              "Id": 1147842,
              "LeadBroker": true,
              "MarketId": "AM0001",
              "Markets": "",
              "OpUnitId": 250050,
              "OpUnits": ""
            },
            {
              "AllocPercent": 50,
              "Amount": 4,
              "Email": "",
              "EmpId": 999111,
              "EmpLoginId": "Sai.Abhiram",
              "EmpName": "Abhiram, Sai",
              "Id": 1147843,
              "LeadBroker": true,
              "MarketId": "AM2900",
              "Markets": "",
              "OpUnitId": 200028,
              "OpUnits": ""
            }
          ]
        },
"JLLBrokerAllocations": {
          "JLLBrokerAllocation": 
            {
              "AllocPercent": 50,
              "Amount": 4,
              "Email": "",
              "EmpId": 214309,
              "EmpLoginId": "Carlin.Power",
              "EmpName": "Power, Carlin",
              "Id": 1147842,
              "LeadBroker": true,
              "MarketId": "AM0001",
              "Markets": "",
              "OpUnitId": 250050,
              "OpUnits": ""
            }
}
问题是,当我在C#中反序列化对象时,我得到一个错误,说“
无法将当前JSON对象(例如{“name”:“value”})反序列化为类型“System.Collections.Generic.List
1[JLL.BTP.dealoservice.Models.dealoio.dealoallocation]”,因为该类型需要一个JSON数组(例如[1,2,3])才能正确反序列化

如何克服这个问题。我想要一个响应类,并且想要将JSON响应反序列化到响应类


如有任何建议,将不胜感激

我不确定您使用的是哪种Json解析器,但如果您可以使用“Newtonsoft.Json”解析器,我想也许可以尝试以下方法

JObject payload = JObject.Parse(payload);

var result = payload["JLLBrokerAllocations"]["JLLBrokerAllocation"].Children().ToList();
你看到了吗?如果我要把这个q当作一个复制品来投票的话,我会把它挂起来的