webapi中接收复杂类型数组参数(对象数组参数)后端字符串转数组
  今天在⼯作中遇到⼀个问题,⼀个接⼝需要前端传递⼀个对象数组参数,但出现后台⽆法反序列对象的错误提⽰。
提⽰信息类似:
"Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.IEnumerable`1[EZAPP.Models.ViewModel.IdAndScoreVM]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly. ↵To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object. ↵Path 'vMs', line 1, position 7."
  当观察传递参数的json结构时发现,
还是标准的key-value形式的json,JSON 字符串。但观察后端参数,
该需要的参数是数组 List等集合参数。⾃然不会识别成key-value形式的。
  ⼩笨的解决⽅案是:构造⼀个简单的对象,类似:
  因为现在参数同是⼀个类⼀个对象,前端依然不变在Request Body中HTTP POST传递参数,如:
前端提交参数:
后端接收并解析成需要的数组/List 对象:
调试⼀下给你看:
完~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。