Saya mencoba mengembalikan beberapa JSON dari layanan WCF. Layanan ini hanya mengembalikan beberapa konten dari basis data saya. Saya bisa mendapatkan datanya. Namun, saya khawatir tentang format JSON saya. Saat ini, JSON yang akan dikembalikan diformat seperti ini:
{"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"}
Pada kenyataannya, saya ingin JSON saya diformat sebersih mungkin. Saya percaya (saya mungkin salah), bahwa kumpulan hasil yang sama, diwakili dalam JSON bersih, akan terlihat seperti ini:
[{
"Age": 35,
"FirstName": "Peyton",
"LastName": "Manning"
}, {
"Age": 31,
"FirstName": "Drew",
"LastName": "Brees"
}, {
"Age": 29,
"FirstName": "Tony",
"LastName": "Romo"
}]
Saya tidak tahu dari mana "d" berasal. Saya juga tidak tahu mengapa karakter escape dimasukkan. Entitas saya terlihat seperti berikut:
[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;
}
}
Layanan yang bertanggung jawab untuk mengembalikan konten didefinisikan sebagai:
[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;
}
}
Bagaimana cara mengembalikan JSON "bersih" dari layanan WCF? Terima kasih!