2009-03-24 4 views
1

Ich habe ein einfaches Objekt, das von JSON in ein serverseitiges Objekt deserialisiert wird.Wie lautet die richtige Syntax für die Darstellung von Unterobjekten in JSON?

JSON:

{ 
    name    : 'ObjectName', 
    host    : 'http://localhost', 
    ImagesPath  : '/Images/' 
} 

Auf der Serverseite, die über JSON-Code wird über System.Web.Script.Serialization.JavaScriptSerializer in diesem C# Objekt deserialisiert:

public class InfoObject 
{ 
    public string Name { get; set; } 
    public string Host { get; set; } 
    public string ImagesPath { get; set; } 
} 

die Zeit über funktioniert gut, aber ich dachte an das Hinzufügen viele Eigenschaften dazu. Ich möchte Unterobjekte hinzufügen, um die zusätzlichen Daten zu speichern, so dass nicht alle Eigenschaften in einer langen Klasse enthalten sind.

Sub-Objekt-Objekt:

public class TestSubObject 
{ 
    public string TestString { get; set; } 
} 

Damit das neue C# Objekt wie folgt aussieht:

public class InfoObject 
{ 
    public string Name { get; set; } 
    public string Host { get; set; } 
    public string ImagesPath { get; set; } 
    public TestSubObject MoreInformation {get;set;} 
} 

Aber das Problem ist, dass ich weiß nicht, wie die Initialisierung eines Unter darstellen -Objekteigenschaft in JSON. Vielleicht habe ich etwas Offensichtliches verpasst, aber Google-Suchen ergaben nicht sofort eine Antwort.

Ich habe versucht:

{ 
    name    : 'ObjectName', 
    host    : 'http://localhost', 
    ImagesPath  : '/Images/', 
    MoreInformation.TestString : 'hello world' 
} 

aber keine Würfel, so wie ich richtig schreiben die oben in JSON?

Antwort

8

Sie können es wie folgt schreiben:

{ 
    Name    : 'ObjectName', 
    Host    : 'http://localhost', 
    ImagesPath  : '/Images/', 
    MoreInformation : {TestString : 'hello world'} 
}; 

// And to access the nested object property: 
obj.MoreInformation.TestString 
+0

Danke, das war die Antwort, die ich gesucht habe –

1

JSON selbst ist ein „Objekt“ Notation, setzen Sie einfach ein anderes Objekt in der „Objekt“

{ 
    key: value, 
    key2 : { inner_key : value, inner_key2 : value } 
} 

Wie Sie sehen können, der Ausdruck { ... } ergibt ein Objekt