2015-02-07 4 views
-1

약간의 도움이 필요합니다. 나는 어떤 속성을 가진 타입의 필름을 가지고있다. 그리고 나는이 영화 (리스트)의 목록을 가지고있다. 내가 그것을 serialize하고 파일에 저장할 때로드 할 및 deserialize 할 수 없습니다 (어떤 종류의 Xaml 오류). 여기 는 JSON 파일에 저장됩니다 도움을Json .Net Deserialize

List<Film> temp = JsonConvert.DeserializeObject<List<Film>>(json, new FilmConverter()); 

감사 : 여기

[ 
    { 
     "cesta": "C:\\Users\\Kenny\\Videos\\[Glitch Hop or 110BPM] Rogue Night After Night [Monstercat Release].wmv", 
     "jmeno": "Test", 
     "serie": "0", 
     "hodnoceni": "", 
     "herci": "", 
     "rok": 0, 
     "dil": 0, 
     "obrazek": "file:///C:/Users/Kenny/Pictures/Pozadi­/1.jpg" 
    }, 
    { 
     "cesta": "C:\\Users\\Kenny\\Videos\\[EDM] Laszlo x WRLD You Me [Monstercat Release].mp4", 
     "jmeno": "Test2", 
     "serie": "0", 
     "hodnoceni": "", 
     "herci": "", 
     "rok": 0, 
     "dil": 0, 
     "obrazek": "file:///C:/Users/Kenny/Pictures/Pozadi/1.jpg" 
    } 
] 

그리고 그것을 역 직렬화하는 코드입니다.

+0

당신이 어떤 오류가 있습니까 : 예를 들어

? –

+0

@ sławomir-rosiek :'PresentationFramework.dll에서 'System.Windows.Markup.XamlParseException'유형의 첫 번째 예외가 발생했습니다. – user3315892

+2

'FilmConverter' 코드를 게시 할 수 있습니까? 그 오류는 완전히 무관계로 들린다. 내 추측으로는 다른 곳에서 오는 것입니다. –

답변

2

JSON.Net을 사용하는 가장 좋은 방법은 JSON 데이터를 설명하는 클래스 정의를 만들고 JsonConvert.DeserializeObject<> 메서드를 사용하여 JSON을 객체로 역 직렬화하는 것입니다.

public class FilmInfo 
{ 
    [JsonProperty("cesta")] 
    public string Path { get; set; } 

    [JsonProperty("rok")] 
    public int Year { get; set; } 

    // other properties 
    public string jmeno { get; set; } 
    public string serie { get; set; } 
    public string hodnoceni { get; set; } 
    public int dil { get; set; } 
    public string obrazek { get; set; } 
}; 

static void Main(string[] args) 
{ 
    var json = @" 
    [ 
     { 
      'cesta': 'C:\\Users\\Kenny\\Videos\\[Glitch Hop or 110BPM] Rogue Night After Night [Monstercat Release].wmv', 
      'jmeno': 'Test', 
      'serie': '0', 
      'hodnoceni': '', 
      'herci': '', 
      'rok': 0, 
      'dil': 0, 
      'obrazek': 'file:///C:/Users/Kenny/Pictures/Pozadi­/1.jpg' 
     }, 
     { 
      'cesta': 'C:\\Users\\Kenny\\Videos\\[EDM] Laszlo x WRLD You Me [Monstercat Release].mp4', 
      'jmeno': 'Test2', 
      'serie': '0', 
      'hodnoceni': '', 
      'herci': '', 
      'rok': 0, 
      'dil': 0, 
      'obrazek': 'file:///C:/Users/Kenny/Pictures/Pozadi/1.jpg' 
     } 
    ]"; 

    var list = JsonConvert.DeserializeObject<List<FilmInfo>>(json); 
} 
+0

귀하의 코드에 대한 .net 피들 링크를 만들었습니다. [link] (https://dotnetfiddle.net/CWQSof) –

+0

고마워요, 내가 그 경로에 대한 것이 아니라 BitmapImage 파일에 저장한다는 것을 알지 못했습니다 ...하지만 감사합니다. 많이 :) – user3315892