Json .Net 反序列化
Json .Net Deserialize
我几乎不需要帮助。我有类型的电影,它有一些属性。我有这部电影的清单(清单)。当我序列化它并保存到文件时,我无法加载和反序列化它(某种类型的 Xaml 错误)。
这是保存在文件中的 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"
}
]
这里是反序列化它的代码:
List<Film> temp = JsonConvert.DeserializeObject<List<Film>>(json, new FilmConverter());
感谢您的帮助。
使用 JSON.Net 的最佳方法是创建一个 class 定义来描述您的 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);
}
我几乎不需要帮助。我有类型的电影,它有一些属性。我有这部电影的清单(清单)。当我序列化它并保存到文件时,我无法加载和反序列化它(某种类型的 Xaml 错误)。 这是保存在文件中的 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"
}
]
这里是反序列化它的代码:
List<Film> temp = JsonConvert.DeserializeObject<List<Film>>(json, new FilmConverter());
感谢您的帮助。
使用 JSON.Net 的最佳方法是创建一个 class 定义来描述您的 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);
}