【问题标题】:C# REST Web Api POST object with arrays [closed]带有数组的 C# REST Web Api POST 对象 [关闭]
【发布时间】:2017-06-01 12:37:20
【问题描述】:

我尝试使用类似这样的数组发送到 REST Api 对象:

class MyObject
{
    public string Name{get; set;} 
    public IEnumerable<RelatedObject> Related{get; set;}
}
class RelatedObject
{
    public string Name{get;set;}
}

JSON 格式是这样的:

{
  "Name": "TestName",
  "Related": [{
  "Name": "TestNameRelated1"
  }{
  "Name": "TestNameRelated2"
  }]
}

有方法声明

public void Post([FromBody]MyObject value) ... 

问题是值始终为空。我试图将 MyObject 和 RelatedObject 之间的关系从 1:N 更改为 1:1,我更改了 JSON 字符串并且我得到了正确的值。 我想问题是转换数组?我试图将 IEnumerable 更改为 List 但没有发生任何事情并且值为空。

如何将数组转换为 IEnumerable?如何使用自己的 JSON 转换器?我在客户端解决了这个问题,但在服务器端序列化为对象是内置的。

谢谢。

【问题讨论】:

  • 尝试将 IEnumerable 更改为 IList 并查看
  • 问题在于你的 json 字符串..
  • 我将 IEnumerable 更改为 List 但值仍然为空。

标签: c# arrays json rest


【解决方案1】:

这不是一个有效的json,json数组中的值之间应该有',' 试试这个

{
  "Name": "TestName",
  "Related": [{
  "Name": "TestNameRelated1"
  },{
  "Name": "TestNameRelated2"
  }]
}

【讨论】:

  • 发生了什么变化?
  • @PatrickHofman OP 在 Related 数组中缺少 ,
  • 这将是一个非常有用的答案信息,你不觉得吗? @suraj 我希望 Amitay 能理解答案很不清楚,基本上只是一个几乎没有用的代码转储。
  • 我同意..如果我是回答者会添加它:)
  • 谢谢它的工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多