2017-05-03 1 views
0

Ich versuche, JSON-Daten deserialize auf eine Weise formatiert, die ich nicht zuvor gesehen habe. Ich benutze json.net und C#.Parsen von JSON mit json.net, Array als Eigenschaften serialisiert

Die Klasse der json entsprechenden sollte wie folgt sein:

class Example 
{ 
    public Person[] data { get; set; } 
} 

class Person 
{ 
    public string Id { get; set; } 
    public string Nationality { get; set; } 
    public string Name { get; set; } 
} 

Und das ist, wie die json wie folgt aussieht:

{ 
    data: { 
     "123": ["SWE", "Steve"], 
     "221": ["USA", "Bob"], 
     "245": ["CAN", "Susan"] 
    } 
} 

Ist es möglich, mit Hilfe von Attributen oder muss ich es zu tun haben, alles selbst?

+3

, die nicht gültig JSON ist. Überprüfen Sie immer zunächst, ob Sie über gültige JSON verfügen (https://jsonlint.com/). – mason

+0

Also zur Klarstellung, ich kontrolliere nicht die JSON-Daten, es ist so wie es ist. Und meine Frage ist, ist es analysierbar? – Rios

+0

Um zu verdeutlichen, das ist dann nicht JSON. Sie sollten sich an die Person wenden, die diese Daten bereitstellt, und ihnen mitteilen, dass sie kein gültiges JSON generiert. – mason

Antwort

-5

Ihre Variablen auf dem Daten Objekt (123, 221, 245) würde eine Art List<string>().

Mit JSON.NET muss Ihr Schema Ihren Daten entsprechen. Typen und Namen.

BEARBEITEN: Wenn Sie auf Ihr Person-Objekt schauen, scheinen Ihre POCO-Klassen nicht korrekt zu sein. Sie würden eine Struktur wie diese brauchen:

public Data data { get; set; } 

wo Daten ...

public class Data 
{ 
    public List<string> 123 { get; set; } 
    ... 
} 
+3

Nein, das ist nicht gültig. Es ist keine Liste von Zeichenfolgen. Aber JSON ist kein gültiger JSON, das ist also irrelevant. – mason

+2

Und in jedem Fall ist '123' kein gültiger Name in C# –

Verwandte Themen