【发布时间】:2010-09-30 07:20:38
【问题描述】:
我有以下带有以下签名的 .NET Web 服务 (IServices.cs):
[OperationContract]
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
string ReturnListOfPersons();
实现是(在 Services.svc.cs 中):
public string ReturnListOfPersons(){
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Person> listPersons= myModel.ReturnPersons();
var myList = from a in listPersons
select new { FirtName = a.FirstName; LastName = a.LastName};
string strJSon = oSerializer.Serialize(myList.Distinct());
StringBuilder sbJSon = new StringBuilder();
sbJSon.AppendFormat("{0}", strJSon);
return sbJSon.ToString();
}
上面的代码被简化了,因为我有一些连接和“尝试捕获”。
反正问题是返回的json字符串是:
"[{\"FirstName\":\"Foo\",\"LastName\":\"Bar\"},{\"Hello\":\"Foo\",\"LastName\":\"World\"}]"
嗯,这很正常,因为“toString”方法。 但是,我正在尝试获得确切的 Json 格式:开头没有双引号,当然也没有反斜杠,并且能够转义特殊字符。 所以,我会得到:
[{"FirstName":"Foo","LastName":"Bar"},{"Hello":"Foo","LastName":"World"}]
有可能吗?
谢谢,
问候
【问题讨论】:
标签: .net web-services json serialization