将GetResults的返回类型更改为
List<Person>。
消除用于将List序列化为json字符串的代码-WCF会自动为您执行此操作。
使用您对Person类的定义,此代码对我有用:
public List<Person> GetPlayers(){ List<Person> players = new List<Person>(); players.Add(new Person { FirstName="Peyton", LastName="Manning", Age=35 } ); players.Add(new Person { FirstName="Drew", LastName="Brees", Age=31 } ); players.Add(new Person { FirstName="Brett", LastName="Favre", Age=58 } ); return players;}结果:
[{"Age":35,"FirstName":"Peyton","LastName":"Manning"}, {"Age":31,"FirstName":"Drew","LastName":"Brees"}, {"Age":58,"FirstName":"Brett","LastName":"Favre"}](全部一行)
我还在方法上使用了此属性:
[WebInvoke(Method = "GET",RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json,UriTemplate = "players")]
使用Method =“ GET”的WebInvoke与WebGet相同,但是由于我的某些方法是POST,因此为了保持一致性,我使用了所有WebInvoke。
UriTemplate设置该方法可用的URL。因此,我可以进行GET操作,
http://myserver/myvdir/JsonService.svc/players并且可以正常使用。
还要检查IIRF或其他URL重写器,以摆脱URI中的.svc。



