2015-02-07 3 views
-1

Мне нужна небольшая помощь. У меня есть фильм типа, который имеет некоторые атрибуты. И у меня есть список этого фильма (Список). Когда я сериализую его и сохраняю в файл, я не могу загрузить и десериализовать его (некоторый тип ошибки Xaml). Здесь JSON сохраняются в файле:Json .Net Deserialize

[ 
    { 
     "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" 
    } 
] 

А вот код для десериализации его:

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

Спасибо за помощь.

+0

Какую ошибку вы имеете? –

+0

@ sławomir-rosiek: «Первое случайное исключение типа« System.Windows.Markup.XamlParseException »произошло в PresentationFramework.dll' – 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