2017-11-15 5 views
0

여기 내 JSON 형식입니다. 내 코드 :객체 직렬화 오류

public static class Config 
{ 
    public const string pathSharedFile = @"Config.json"; 

    public static List<string> ReadGroupes() 
    { 
     StreamReader sr = new StreamReader(pathSharedFile); 
     List<Groupe> Groupes = JsonConvert.DeserializeObject<List<Groupe>>(sr.ReadToEnd()); 
     return new List<string>(); 
    } 
} 

public class Groupe 
{ 
    public Item[] items { get; set; } 
} 
public class Item 
{ 
    public string nom { get; set; } 
    public string type { get; set; } 
} 

나는 캐스팅을하려고 할 때 오류가 발생합니다. 누군가 나를 도울 수 있습니까?

+0

이 이름'가 : 속성 당신이 키를 사용하여 각 그룹에 액세스 할 수 있도록 사전을 사용하여 동적으로

Dictionary<string, Item[]> Groupes = JsonConvert.DeserializeObject<Dictionary<string, Item[]>>(sr.ReadToEnd()); 

을 groupe1'이 고정되었거나 몇 개의 속성 이름이 존재할 수 있습니까? – dbc

+0

그룹 2 이후에는 고유 한 이름이어야합니다 ... – HyrozenT

+0

이 json은 목록이 아닌 개체입니다. json이 첫 번째 대괄호 : [groupe2 ": {},"groupe3 ": {}, ...]에 나열되어야하지만 다른 이름을 사용하면 C#에서 deserialize하기가 어려울 수 있습니다. C# 클래스가 객체라고 가정하면 Groupa {public Item [] gorup1, public Item [] group2, ...} = 동적 객체이어야합니다. – MRsa

답변

2

Groupe의 클래스를 제거하고이 같은 사전 사용

var groupContent = Groupes["groupe1"]; 

foreach(var item in groupContent) 
    //Do whatever you want with the item