如何从WCF服务返回干净的JSON?我正在尝试从WCF服务返回一些JSON。这个服务只是从我的数据库中返回一些内容。我可以得到数据。但是,我担心JSON的格式。当前,返回的JSON格式如下:{"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"}实际上,我希望我的JSON格式尽可能清晰。我认为(我可能不正确),相同的结果集合(用干净的JSON表示)应该如下所示:[{"Age":35,"FirstName":"Peyton","LastName":"Manning"},{"Age":31,"FirstName":"Drew","LastName":"Brees"},{"Age":29,"FirstName":"Tony","LastName":"Romo"}]我不知道“d”是从哪里来的。我也不知道为什么要插入转义字符。我的实体看起来如下:[DataContract]public class Person{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public int Age { get; set; }
public Person(string firstName, string lastName, int age)
{
this.FirstName = firstName;
this.LastName = lastName;
this.Age = age;
}}负责返回内容的服务定义为:[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]public class TestService{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public string GetResults()
{
List<Person> results = new List<Person>();
results.Add(new Person("Peyton", "Manning", 35));
results.Add(new Person("Drew", "Brees", 31));
results.Add(new Person("Tony", "Romo", 29));
// Serialize the results as JSON
DataContractJsonSerializer serializer = new DataContractJsonSerializer(results.GetType());
MemoryStream memoryStream = new MemoryStream();
serializer.WriteObject(memoryStream, results);
// Return the results serialized as JSON
string json = Encoding.Default.GetString(memoryStream.ToArray());
return json;
}}如何从WCF服务返回“干净”JSON?谢谢!
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
List<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")]
http://myserver/myvdir/JsonService.svc/players
喵喵时光机
TA贡献1846条经验 获得超7个赞
<webHttp defaultOutgoingResponseFormat="Json"/>
添加回答
举报
0/150
提交
取消