2016-05-17 6 views
0

Dies ist meine JSON-DateiJSON-Datei von C# -Code lesen

{ 
    "UseCase1": { 
    "UseCaseId": "Usecase1", 
    "UseCaseDescription": "description1" 

}, 
"UseCase2": { 
    "UseCaseId": "Usecase2", 
    "UseCaseDescription": "description2" 

} 

} 

Das ist meine Klasse

public class UseCase 
    { 
     public string UseCaseId { get; set;} 
     public string UseCaseDescription { get; set;} 
    } 

ist, wie die json Elemente in eine Liste dieser Klasse zuzuordnen (UseCase)

Ich habe den folgenden Code versucht, aber es funktioniert nicht

string Json = System.IO.File.ReadAllText(@"D:\ENERGY METER\ENERGY METER –IRP\SourceCode\EDMI.EnergyMeterPOC\EDMI.EnergyMeterPOC.Repository\DataSource\UseCaseData.json"); 
      JavaScriptSerializer ser = new JavaScriptSerializer(); 
      var personlist = ser.Deserialize<List<UseCase>>(Json); 
      return personlist; 
+4

Was haben Sie versucht? –

+1

newtonsoft json deserialize Liste http://stackoverflow.com/questions/16019729/json-deserialize-list – Habeeb

+1

http://stackoverflow.com/questions/13297563/read-and-parse-a-json-file-in-c -sharp –

Antwort

0

Sie müssen sich Ihren JSON erneut ansehen.

Wenn Sie in ein Werkzeug wie JSON Utils platziert werden, enden Sie mit dem folgenden.

public class UseCase1 
{ 
    public string UseCaseId { get; set; } 
    public string UseCaseDescription { get; set; } 
} 

public class UseCase2 
{ 
    public string UseCaseId { get; set; } 
    public string UseCaseDescription { get; set; } 
} 

public class RootObject 
{ 
    public UseCase1 UseCase1 { get; set; } 
    public UseCase2 UseCase2 { get; set; } 
} 

Damit Ihr Objekt in einer Liste zu sein, es woudl muss zuerst ein Array sein, die Dateien nicht ist.

Sie Json-Datei würde wie diese zu suchen Ihre UseCase Sammlung Anforderung

{ 
    "UseCases": [ 
    { 
    "UseCaseId": "Usecase1", 
    "UseCaseDescription": "description1" 
    }, 
    { 
    "UseCaseId": "Usecase2", 
    "UseCaseDescription": "description2" 
    }] 
} 

, welche die folgenden Klassen müssten zu erfüllen, wenn deserialisiert ...

public class UseCase 
{ 
    public string UseCaseId { get; set; } 
    public string UseCaseDescription { get; set; } 
} 

public class RootObject 
{ 
    public List<UseCase> UseCases { get; set; } 
} 
0

Erstellen Sie eine Wrapper-Klasse:

public class UseCaseWrapper 
    { 
     public UseCase UseCase1 { get; set;} 
     public UseCase UseCase2 { get; set;} 
    } 

var result = JsonConvert.Deserailize<UseCaseWrapper>(// Json data); 

Bitte beachten Sie diese ein NewtonSoft Json API verwendet, die eine bevorzugte Net-Bibliothek für Json Serialisierung - Deserialisierung

Ergebnis wird vom Typ UseCaseWrapper wird enthalten, die die UseCase1, UseCase2 Komponenten. Jetzt können Sie sie zu einem List<UseCase> Objekt manuell hinzufügen