asp.net web api post 接收不到jsom数据问题

jiangshunmin 2015-07-26 11:53:22
初学web api,遇到问题

服务代码:

       
public void Post([FromBody]values value)
{
string s = value.Appkey;
string i = value.Idcard;
}

public class values
{
public string Appkey { get; set; }
public string Idcard { get; set; }
}




如果发送 {"Appkey":"abc","Idcard":"3522201xxxxxxx"} 这样的数据是可以接收得到的。

但如果发送 [{"Appkey":"abc","Idcard":"3522201xxxxxxx"}] 这样的数据没有办法收到得到。调试进去数据是null 。

把对象直接扔进去,生成的json都带中括号,这个问题怎么处理?

...全文
222 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 jiangshunmin 的回复:
[quote=引用 1 楼 starfd 的回复:] 确认你要接收的json数组还是json对象,带括号的是数组集合 你的方法里面应该是用values[] value来接收,然后传递时传递的json格式为
"":[{"Appkey":"abc","Idcard":"3522201xxxxxxx"}]
即不要设置Key
如果我不确定对方会发送过来的是对象还是数组,哪我要怎么做才能兼容这两种情况?[/quote] 对方如果不是来访问你的 Post 方法的,那么你不要花那个闲心思管他。他爱发什么发什么,与你无关。 实际上,如果参数应该是0~n个对象,那么你应该定义为方法接口规格为
 public void Post(values[ ] value)
这时候,就是你的服务定义上的问题了。
jiangshunmin 2015-07-27
  • 打赏
  • 举报
回复
引用 4 楼 skyandcode 的回复:
[quote=引用 2 楼 jiangshunmin 的回复:] [quote=引用 1 楼 starfd 的回复:] 确认你要接收的json数组还是json对象,带括号的是数组集合 你的方法里面应该是用values[] value来接收,然后传递时传递的json格式为
"":[{"Appkey":"abc","Idcard":"3522201xxxxxxx"}]
即不要设置Key
如果我不确定对方会发送过来的是对象还是数组,哪我要怎么做才能兼容这两种情况?[/quote] 重载[/quote] 我是个自学且初学的,希望你能给一段这个重载的代码,谢谢
skyandcode 2015-07-27
  • 打赏
  • 举报
回复
引用 2 楼 jiangshunmin 的回复:
[quote=引用 1 楼 starfd 的回复:] 确认你要接收的json数组还是json对象,带括号的是数组集合 你的方法里面应该是用values[] value来接收,然后传递时传递的json格式为
"":[{"Appkey":"abc","Idcard":"3522201xxxxxxx"}]
即不要设置Key
如果我不确定对方会发送过来的是对象还是数组,哪我要怎么做才能兼容这两种情况?[/quote] 重载
  • 打赏
  • 举报
回复
你是服务方,你居然没资格要求对方怎么做?奇葩了!你让请求方只有一个的时候也按数组传递不就可以了
jiangshunmin 2015-07-27
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
确认你要接收的json数组还是json对象,带括号的是数组集合 你的方法里面应该是用values[] value来接收,然后传递时传递的json格式为
"":[{"Appkey":"abc","Idcard":"3522201xxxxxxx"}]
即不要设置Key
如果我不确定对方会发送过来的是对象还是数组,哪我要怎么做才能兼容这两种情况?
  • 打赏
  • 举报
回复
确认你要接收的json数组还是json对象,带括号的是数组集合 你的方法里面应该是用values[] value来接收,然后传递时传递的json格式为
"":[{"Appkey":"abc","Idcard":"3522201xxxxxxx"}]
即不要设置Key
skyandcode 2015-07-27
  • 打赏
  • 举报
回复
引用 5 楼 jiangshunmin 的回复:
[quote=引用 4 楼 skyandcode 的回复:] [quote=引用 2 楼 jiangshunmin 的回复:] [quote=引用 1 楼 starfd 的回复:] 确认你要接收的json数组还是json对象,带括号的是数组集合 你的方法里面应该是用values[] value来接收,然后传递时传递的json格式为
"":[{"Appkey":"abc","Idcard":"3522201xxxxxxx"}]
即不要设置Key
如果我不确定对方会发送过来的是对象还是数组,哪我要怎么做才能兼容这两种情况?[/quote] 重载[/quote] 我是个自学且初学的,希望你能给一段这个重载的代码,谢谢[/quote] 楼上的也说了,你写接口,对方应该根据你的规范来调用。 如果你要接收1或>1个对象,那么应该用数组,这样才是合理的。 非要加多一个重载,就加多一个一样的函数,参数改为values value。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧