2012-03-31 13 views
4

Ich habe einige JSON Ich möchte deserialize, aber ich möchte eine der Eigenschaften als Zeichenfolge, kein Objekt behandeln.JSON.Net - Wie JSON zu einem Objekt deserialisieren, aber eine Eigenschaft als Zeichenfolge anstelle von JSON behandeln?

Als Beispiel sieht das JSON wie folgt aus:

{ 
    "name":"Frank", 
    "sex":"male", 
    "address": { 
       "street":"nowhere st", 
       "foo":"bar" 
      } 
} 

Und ich will es zu diesem Objekt deserialisieren - Die Behandlung der Adresse Objekt als Stringliteral:

public class Person 
{ 
    public string name; 
    public string sex; 
    public string address; 
} 

Ich habe versucht, wörtlich deserializing es zu diesem Objekt, aber erhalten Sie den Fehler:

Das JSON-Objekt kann nicht in Typ 'System.String' deserialisiert werden.

Irgendwelche Ideen?

Prost

Antwort

2

Der einfachste Weg ist, wenn Sie Ihre Klasse Person ändern können und eine Adressklasse für Ihre Eigenschaft Adresse erstellen wie:

public class Person 
{ 
    public string name; 
    public string sex; 
    public Address address; 
} 

public class Address 
{ 
    public string street; 
    public string foo; 
} 

Diese JSON.NET für Sie die Adresse Objekt deserialisieren lassen .

Wenn Sie Ihre Klasse nicht ändern können - die Lösung muss die Deserialisierung von Person manuell behandeln, glaube ich.

Verwandte Themen