Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DataContractJsonSerialzer Problem
rollerueckwaerts
myCSharp.de - Member



Dabei seit:
Beiträge: 57

Themenstarter:

DataContractJsonSerialzer Problem

beantworten | zitieren | melden

Hallo,

ich versuche seit einigen Stunden verweifelt einen JsonString in ein Objekt zu wandeln und bekomme immer den Fehler "kann nicht in Typ result umgewandelt werden"
Kann mir aber nicht erklären woran es liegt ....

mein Objekt:
{"id":"iphone","result":[
{"kontaktid":"2","typ":"\u00c4rzte (niedergel\/stat.)","nachname":"Meyer","vorname":"Sabine"},
{"kontaktid":"3","typ":"\u00c4rzteorganisationen","nachname":"Gabor","vorname":"Uli"}
],"error":null}

    [DataContract]
          public class result
        {
                   [DataMember]
                  private string _kontakttyp;
                  public string typ
                 {
                     get { return _kontakttyp; }
                     set { _kontakttyp = value; }
                  }
        }

c#:

readedString = jsonrpc.response;
                    MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(readedString));

                    Type[] knownTypes = new Type[] { typeof(result) };
                    DataContractJsonSerializer serializer =
                    new DataContractJsonSerializer(typeof( knownTypes);

                    List<result> res = (List<result>)serializer.ReadObject(ms);

Wäre supi wenn sich jemand opfert und da mal kurz rauf schaut, bin mittlerweile völlig am verweifeln.

Lieben Dank schon jetzt
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von rollerueckwaerts am .
private Nachricht | Beiträge des Benutzers
jreusch
myCSharp.de - Member

Avatar #avatar-3346.jpg


Dabei seit:
Beiträge: 296

beantworten | zitieren | melden

Hallo rollerueckwaerts,

auf der Seite json2csharp kannst du dir Klassen zu einem Json-Objekt generieren lassen. Die Ergebnisse sind dort meistens ganz vernünftig:


public class Result
{
    public string kontaktid { get; set; }
    public string typ { get; set; }
    public string nachname { get; set; }
    public string vorname { get; set; }
}

public class RootObject
{
    public string id { get; set; }
    public List<Result> result { get; set; }
    public object error { get; set; }
}

Was man im Json-String nicht direkt sieht, wird dann sofort klar: In deinem Rootobjekt steckt also mehr als nur eine Liste von Results.

Kann mir denken, dass der (De-)serializer da nicht drauf klarkommt.

Beim object error könnte er danach auch noch Probleme machen... zur Not rauslöschen bzw. den Typ ersetzen.


Grüße
private Nachricht | Beiträge des Benutzers