2015-08-26 46 views
-1

您好我對C#很陌生,我試圖做一個文本編輯器來保存和加載純文本格式。我使用了NewtonSoft.Json NuGet包,但是出現錯誤。我已經說過一個名爲textToLoad的字符串,它被設置爲JsonConvert.DeserializeObject。唯一的事情是,它說它不能將對象轉換爲字符串!我試過toString();但它仍然有相同的錯誤。NewtonSoft.Json錯誤

+1

請分享您的代碼。然後我們可以看看。 – Ernesto

+0

也許你的數據類需要實現ISerializable接口? https://msdn.microsoft.com/de-de/library/system.runtime.serialization.iserializable(v=vs.110).aspx –

+0

由於錯誤提示「它無法將對象轉換爲字符串」。 'JsonConvert.DeserializeObject'的參數應該是一個真正的* json字符串*而不是一個對象。似乎你想*序列化*的對象不*反序列化* – Eser

回答

0

這是一種很難的沒有代碼。使用Json.Net序列化和反序列化的過程非常簡單。因此,這是從他們的documentation一個例子:

YourType yourObject= new YourType(); 
yourObject.Property="something"; 
string output = JsonConvert.SerializeObject(yourObject); 
//For some reason you want this to be string, but is the type you serialized in the first place 
YourType textToLoad= JsonConvert.DeserializeObject<YourType>(output); 

這概述序列化和反序列化的基礎工作。但我們並不真正瞭解您的實施細節。

希望它有幫助。

+0

謝謝我沒有陳述文件設置爲反序列化:) – RhysO

0

你不能反序列化成這樣的字符串。在最簡單的形式,你開始使用JSON的形式:

{ value: "someString" } 

如果你想出來的東西,你必須反序列化,然後從它那裏得到的值。

dynamic foo = JsonConvert.DeserializeObject<dynamic>(theJson); 
var textToLoad = foo.value.ToString(); 

您必須反序列化爲了檢查並從中獲取屬性。

[編輯] - 也許我不理解。但如果你分享代碼,我會更新我的答案。

相關問題