C#中向API发送JSON数组字符串及反序列化报错问题咨询
这个错误我太熟悉啦!本质问题很简单:你的API现在是按照接收单个Model对象来配置的,但你实际发过去的是Model对象的数组,序列化器自然就懵了,没法把数组塞进单个对象里~
解决步骤
1. 你的Model类不用改成数组类型
Model类只需要定义单个对象的结构就行,完全不用把它改成数组——数组是用来装多个Model实例的容器,不是Model本身的结构。比如你的Model可以这样写:
public class Model { public string ObjectId { get; set; } public int ObjectTypeId { get; set; } }
2. 修改API的接收参数类型
你需要把API接口里接收的参数,从单个Model改成Model的集合类型,比如List<Model>或者Model[](数组)。举个ASP.NET Core的例子:
[HttpPost("your-endpoint")] public IActionResult ReceiveModels([FromBody] List<Model> modelList) { // 在这里处理收到的模型数组 foreach (var model in modelList) { // 针对每个model做业务逻辑,比如处理ObjectId和ObjectTypeId } return Ok("数组接收成功!"); }
3. 确认请求体格式没问题
你现在的请求体是标准的JSON数组格式,完全没问题,比如完整的请求体应该是这样:
[ { "ObjectId" : "1270583B-208A-427F-8B1E-B20E6271D0FE", "ObjectTypeId" : 1 }, { "ObjectId" : "你的第二个对象ID", "ObjectTypeId" : 2 } ]
只要API那边改成接收集合类型,就能正常反序列化了。
内容的提问来源于stack exchange,提问作者fazlook1
相关产品推荐
相关产品推荐

