2016-03-22 12 views
0

Habe seit einiger Zeit mit diesem Problem zu kämpfen.JSON.Net Pars Custom Mapped JSON

Ich habe JSON in folgendem Format:

[ 
{ 
    "Q_LabelOne": { 
     "en": "Some English text", 
     "fr": "Some French" 
    } 
}, 
{ 
    "Q_LabelTwo": { 
     "en": "Some English text", 
     "fr": "Some French" 
    } 
} 
] 

Und ich habe dann Modelle wie so:

public class Resource 
{ 
    public string Label { get; set; } // where Label is basically "Q_LabelOne" 
    public string ValueEN { get; set; } 
    public string ValueFR { get; set; } 
} 

Wie würde ich dieses JSON in einem solchen Format analysieren?

+0

Wenn Sie eine Chance haben, Klasse zu ändern Ressource wäre ziemlich gut für einen besseren Betrieb. –

+1

Können Sie Ihren JSON ändern? Ein Array von Hashmaps sieht seltsam aus. Du solltest besser eine hashmap haben, wenn die Schlüssel dein 'Label' sind und die Werte dein Ressourcenobjekt (En, Fr) sind. – Ryan

+0

Ich brauche dieses Label, um lesbar zu sein, da es sich um eine Ressource handelt, die von einer Person in der Benutzeroberfläche verwendet wird. – Alexus

Antwort

0

Ändern Sie Ihre Ressourcenklasse in die folgenden, damit die Werte nur mit JSON.NET-Attributen zugeordnet werden. Dann parsen Sie den JSON mit List<Dictionary<string, Resource>> mit JsonConvert.DeserializeObject<List<Dictionary<string, Resource>>>(jsonString). Dies wird Ihnen eine Liste von einzelnen Wörterbüchern mit einem Schlüssel "Q_LabelOne" und "Q_LabelTwo" und einem Wert ihrer jeweiligen Resource geben.

+0

Danke, das macht auch den Job, weil ich den Wörterbuchschlüssel später benutzen kann, wenn ich es tatsächlich auf meine Modelle abbilde. Das funktioniert bei mir;) Obwohl ich selbst darüber hätte nachdenken sollen: D – Alexus