C# 如何处理JSON响应,该响应有时返回数组,有时返回C中的对象#
我有一个JSON响应,当有超过1个元素时,它有时返回一个数组,当只有一个元素时,它只返回一个对象 大概是这样的:-C# 如何处理JSON响应,该响应有时返回数组,有时返回C中的对象#,c#,json,C#,Json,我有一个JSON响应,当有超过1个元素时,它有时返回一个数组,当只有一个元素时,它只返回一个对象 大概是这样的:- "JLLBrokerAllocations": { "JLLBrokerAllocation": [ { "AllocPercent": 50, "Amount": 4, "Email": "", "EmpId": 214309
"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当作一个复制品来投票的话,我会把它挂起来的