2017-06-01 78 views
-1

我尝试发送到REST API对象与数组是这样的:使用数组C#REST网络API POST对象

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转换器?我有这个问题在客户端解决,但在服务器端序列化到对象内置。

谢谢。

+0

尝试改变IEnumerable的到IList的,看看 – Gururaj

+0

问题是乌拉圭回合的JSON字符串.. –

+0

我改变IEnumerable到List但值仍然为空。 – Zefek

回答

1

这不是一个有效的JSON,应该在JSON数组值之间是“” 试试这个

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

改变了什么? –

+0

@PatrickHofman OP在相关数组中缺少一个''' –

+1

这在答案中是非常有用的信息,你不觉得吗? @suraj我希望Amitay能够理解答案是相当不清楚的,基本上只是一个代码转储,这是没有用的。 –