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.net을 사용하여 JSON 객체를 비 직렬화하는 방법

문자열 및 ToString()으로 캐스팅을 시도했지만 시도하지 않았습니다.

누구나 내가 여기에서 놓친 것을 보시나요?

답변

1

만이 강력한 형식의 클래스로 JSON 문자열을 설정하는 JSON.net를 사용하는 가장 간단한 방법입니다 Json.Net

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

json과 수업간에 약간의 불일치가있을 수 있습니다. –

+0

예, 술 마시고 코딩해서는 안됩니다 :) 지금은 모두 좋았습니다. 감사. – user1013388

+0

물론, 언제든지, 나는 술도 마시고 싶다. :) –

1

를 문자열로 JSON 파일의 내용을 읽고 사용하여 직렬화 복원이 시도 .

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

PopulateObject 힌트 +1! – user1013388

관련 문제