如何使用json.net反序列化JSON对象

时间:2013-11-02 02:02:51

标签: c# json serialization

StreamReader qryTmpltStream = new StreamReader(tmpltPath + "templates.json");
JsonTextReader qryTmpltReader = new JsonTextReader(qryTmpltStream);
JsonSerializer qryTmpltSrlzr = new JsonSerializer();
object jsonObject = qryTmpltSrlzr.Deserialize(qryTmpltReader);

var tplts = JsonConvert.DeserializeObject<JSONRepClass>(jsonObject);

在上面的代码中,我试图读取一个json文件,然后将其反序列化为一个类。问题是,这个:JsonConvert.DeserializeObject需要一个字符串,但Deserailize方法在返回一个对象之前调用。

我尝试过转换为字符串和ToString(),但没有去。

任何人都能看到我在这里缺少的东西吗?

2 个答案:

答案 0 :(得分:1)

试试这个,只需将json文件内容读入字符串并使用Json.Net反序列化

var jSonString = File.ReadAllText(tmpltPath + "templates.json");
var tplts = JsonConvert.DeserializeObject<JSONRepClass>(jsonString);

答案 1 :(得分:1)

这是使用JSON.net将json字符串转换为强类型类的最简单方法。

YourClass myclass = new YourClass();
JsonConvert.PopulateObject(yourstring,myclass);