die vollen Objekte Sie suchen, sollte so strukturiert sein, durch die [
und von Ihrem gewünschten JSON-Ausgang.
Die Website kann verwirrend sein, da es keine einfachen Beispiele gibt, aber bitte lesen Sie Introducing JSON für ein grundlegendes Verständnis der Syntax. Eine andere gute Seite, die ich mit nur ein paar einfachen Beispielen mitbrachte, war JSON and XML Serialization in ASP.NET Web API.
Dank einiger Führung von Vittore, bemerkte ich, dass die genaue Anpassung an Ihre JSON Ausgabe zu bauen, müssen Sie Objekte wie:
[DataContract]
public class ResponseParent
{
[DataMember(Name = "response")]
public Response ResponseInstance { get; set; }
}
[DataContract]
public class Response
{
[DataMember(Name = "locations")]
public LocationCollectionIntermediate Locations { get; set; }
[DataMember(Name = "error")]
public string Error { get; set; }
}
[DataContract]
public class LocationCollectionIntermediate
{
[DataMember(Name = "location")]
public IEnumerable<Location> Locations { get; set; }
}
[DataContract]
public class Location
{
[DataMember(Name = "id")]
public string Id { get; set; }
[DataMember(Name = "name")]
public string Name { get; set; }
[DataMember(Name = "statusid")]
public string StatusId { get; set; }
}
Ich habe diese in einem zweiten Codeblock hier hinzugefügt, weil Eine solche Struktur erscheint unnötig kompliziert. Wenn Sie sich jedoch in einer Position befinden, in der Sie die erwartete Ausgabe Ihres JSON ändern können, würde ich mit dem ersten Block fortfahren, mit der zusätzlichen Änderung der beiden Id
-Spalten in int
-Typen.
wurden Diese Arten erstellt bei WCF Service to return JSON, einen Dienst ähnlich wie als Einrichtung zu unterstützen und getestet, mit dem folgenden Code:
string json;
using (var ms = new MemoryStream())
{
var ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(ResponseParent));
ser.WriteObject(ms, r);
json = System.Text.Encoding.UTF8.GetString(ms.GetBuffer(), 0, Convert.ToInt32(ms.Length));
}
Details zu DataContractJsonSerializer
Beachten Sie auch, dass, wenn Sie die Option Setup ein REST-fähiger Web-Service, dann können Sie den Richtlinien von How to create a JSON WCF RESTful Service in 60 seconds folgen.
Ich würde lieber nennen Klassen und Eigenschaften in geeigneter Weise nach C# codding Standards (dh Ort nicht Standort) und verwenden Hinweise in Datamember etc Attribute dh '[Datamember (Name = "location")] public class Location' – vittore
Eine andere Sache, die ich gerade bemerkt habe, dass entweder der Themenstarter einen Fehler in der Beispiel-Json-Payload hat, oder Sie müssen eine andere Klasse einführen, da er das Objekt 'locations' mit der Eigenschaft' location' hat Das ist Array von etwas (scheinbar von dem, was Sie 'location' Objekt in Ihrem C# Snippet genannt) – vittore
Vielen Dank für die Hilfe. Mike, basierend auf welcher Serialisierungsmethode haben Sie die oben genannten Strukturen implementiert? Die .Net-Serialisierung oder JSON.NET? Weil ich mich gefragt habe, ob es mit nativer Serialisierung gemacht werden kann. –