【发布时间】:2019-01-22 10:17:56
【问题描述】:
...“美丽”在这里是讽刺的。
当您调用 Active Campaign 的 list_view 端点,并希望在 json 响应中得到它,那么这就是您得到的 json 响应:
{
"0": {
"id": "4",
"name": "Nieuwsletter 1",
"cdate": "2018-11-22 03:44:19",
"private": "0",
"userid": "6",
"subscriber_count": 2901
},
"1": {
"id": "5",
"name": "Newsletter 2",
"cdate": "2018-11-22 05:02:41",
"private": "0",
"userid": "6",
"subscriber_count": 2229
},
"2": {
"id": "6",
"name": "Newsletter 3",
"cdate": "2018-11-22 05:02:48",
"private": "0",
"userid": "6",
"subscriber_count": 638
},
"result_code": 1,
"result_message": "Success: Something is returned",
"result_output": "json"
}
现在我怎么能将它反序列化为一个对象?执行正常的 Edit => Paste Special => Paste JSON As Classes 给了我一个输出,我最终得到了名为 _2 的类。
另外,JsonConvert 抛出以下错误:Accessed JObject values with invalid key value: 2. Object property name expected. 所以它也不能真正反序列化它。我尝试使用dynamic 作为对象类型来转换。
我现在唯一能想到的是将第一个{ 替换为[,将最后一个} 替换为],然后删除所有"1" : 项,然后删除最后3 个属性。之后,我有一个易于转换的基本数组。但我有点希望有人有更好的解决方案,而不是深入研究 string.indexOf 和 string.Replace 派对......
【问题讨论】:
-
所以像
1,2,3这样的键只有三个,或者像0,1,2........N这样的键有无限的可能
标签: c# json json.net deserialization