Tôi đang cố gắng trả lại một số JSON từ dịch vụ WCF. Dịch vụ này chỉ đơn giản trả về một số nội dung từ cơ sở dữ liệu của tôi. Tôi có thể lấy dữ liệu. Tuy nhiên, tôi lo ngại về định dạng JSON của tôi. Hiện tại, JSON được trả về được định dạng như thế này:
{"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"}
Trong thực tế, tôi muốn JSON của tôi được định dạng càng sạch càng tốt. Tôi tin rằng (tôi có thể không chính xác), rằng cùng một bộ sưu tập kết quả, được trình bày trong JSON sạch, sẽ trông giống như vậy:
[{
"Age": 35,
"FirstName": "Peyton",
"LastName": "Manning"
}, {
"Age": 31,
"FirstName": "Drew",
"LastName": "Brees"
}, {
"Age": 29,
"FirstName": "Tony",
"LastName": "Romo"
}]
Tôi không có ý tưởng về nơi mà diếp cá đến từ đâu. Tôi cũng không biết tại sao các ký tự thoát được chèn vào. Thực thể của tôi trông như sau:
[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;
}
}
Dịch vụ chịu trách nhiệm trả lại nội dung được xác định là:
[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;
}
}
Làm cách nào để tôi trả lại sạch JSON JSON từ dịch vụ WCF? Cảm ơn bạn!