Ich versuche, JSON von einem WCF-Dienst zurückzugeben. Dieser Dienst gibt einfach einige Inhalte aus meiner Datenbank zurück. Ich kann die Daten bekommen. Ich bin jedoch besorgt über das Format meines JSON. Derzeit ist der zurückgegebene JSON wie folgt formatiert:
{"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"}
In Wirklichkeit möchte ich, dass mein JSON so sauber wie möglich formatiert wird. Ich glaube (ich kann mich irren), dass dieselbe Sammlung von Ergebnissen, die in sauberem JSON dargestellt wird, so aussehen sollte:
[{
"Age": 35,
"FirstName": "Peyton",
"LastName": "Manning"
}, {
"Age": 31,
"FirstName": "Drew",
"LastName": "Brees"
}, {
"Age": 29,
"FirstName": "Tony",
"LastName": "Romo"
}]
Ich habe keine Ahnung, woher das "d" kommt. Ich habe auch keine Ahnung, warum die Escape-Zeichen eingefügt werden. Meine Entität sieht wie folgt aus:
[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;
}
}
Der Dienst, der für die Rücksendung des Inhalts verantwortlich ist, ist definiert als:
[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;
}
}
Wie kann ich "sauberes" JSON von einem WCF-Dienst zurückgeben? Danke dir!