2013-11-02 74 views
-1
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方法調用之前它返回一個對象。如何使用json.net反序列化JSON對象

我試圖鑄造字符串和ToString(),但沒有去。

有人看到我在這裏失蹤?

回答

1

試試這個,只讀過JSON文件內容到一個字符串,並使用反序列化Json.Net

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

請將它發佈,json和類之間可能會有一些不一致。 –

+0

是的,我不應該喝酒和編碼:)現在都很好。謝謝。 – user1013388

+0

當然,任何時候,我都想喝一杯。 :) –

1

這是使用JSON.net把一個JSON字符串成一個強類型的類的最簡單方法。

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

+1爲PopulateObject提示! – user1013388