2013-11-02 5 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 с помощью json.net

Я пробовал кастинг в строку и 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

Смежные вопросы