2011-03-30 67 views
1

我現在使用.NET JavascriptSerializer類暫時將我的對象序列化爲JSON表示並在客戶端使用它。一切都很好,只要我堅持像int,字符串等默認類型。但是,現在我想要序列化我的對象上的自定義類型屬性。讓看我的類的例子:我想使用JavascriptSerializer將自定義類型屬性序列化爲字符串

public class ClientData 
{  
    public Guid Id { get; set; } 
    public string Description { get; set; } 
    public MyCustomObject ObjectX { get; set; } 
} 

笏是客戶方的對象,看起來是這樣的:

{ Id: 0000-0000-000-0000, Description: "some description", ObjectX: "125.20" } 

爲了使這項工作,我試圖用一個JavaScriptConverter但沒有按」不像是會解決問題,因爲它只能處理字典,什麼會令結果是這樣的:

{ Id: 0000-0000-000-0000, Description: "some description", ObjectX: { Value: "125.20"} } 

這不是我想要的。順便說一下,我確實在MyCustomObject類上實現了toString。

有什麼建議嗎?

謝謝分配。

+0

是可序列化? – Fender 2011-03-30 12:24:50

+0

你是指ClientData對象還是MyCustomObject對象?無論如何,兩者都不是明確可序列化的。我錯過了什麼? – user683870 2011-03-30 12:31:27

+0

看我的答案 – Fender 2011-03-30 12:34:42

回答

0

這裏是MSDN頁面javascriptserializer: http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

在備註欄它說:

序列化一個對象,請使用Serialize方法。要反序列化JSON字符串,請使用Deserialize或DeserializeObject方法。要序列化和反序列化JavaScriptSerializer本機不支持的類型,請使用JavaScriptConverter類實現自定義轉換器。然後使用RegisterConverters方法註冊轉換器。

所以你應該看看這個類: http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptconverter.aspx

+0

我有一個該類的轉換器,但那並不符合我的需要: var result = new Dictionary (); result.Add(「Value」,obj.ToString()); 返回結果; 它使得我的第一篇文章 – user683870 2011-03-30 12:40:13

+0

中描述的財產的對象,你註冊你的轉換器? – Fender 2011-03-30 12:40:55

+0

Yupp ...所以會發生這樣的結果:{Id:0000-0000-000-0000,描述:「一些描述」,ObjectX:{價值:「125.20」}} – user683870 2011-03-30 12:43:14

0

使用JsonConverter從Json.NET庫似乎做的伎倆我。

相關問題