2009-08-30 76 views
18

我現在使用的是asp.net mvc,想知道使用內置的Json或 Json.Net什麼是更好的選擇我不確定是否有一個優於另一個。Asp.net MVC json或Json.net?

此外,如果我選擇走下Json.Net的路線,那麼我應該使用穩定版本還是beta 4?我不確定beta是多麼不穩定。

回答

10

您可能有問題serializing dates with the MVC JSON.我對該帖子的回覆在下面重複。

如果你不綁定到MS JSON序列化程序,你可以使用Json.NET。它帶有一個IsoDateTimeConverter。 這會將日期序列化爲ISO 8601格式化的字符串。

例如,在我們的項目 中,序列化myObject是通過 下面的代碼處理的。

JsonNetResult jsonNetResult = new JsonNetResult(); 
jsonNetResult.Formatting = Formatting.Indented; 
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter()); 
jsonNetResult.Data = myObject; 

如果你決定採取Json.NET 急跌你也想抓住 JsonNetResult,因爲它返回一個 的ActionResult可以在 ASP.NET MVC應用程序中使用。它相當容易使用,很容易 。

欲瞭解更多信息,請參閱:Good (Date)Times with Json.NET

目前,我們正在使用Json.NET V3.5 Beta 4的並沒有遇到的問題。但是,我們並沒有真正對我們的系統徵稅,因爲它尚未投入生產。您的里程可能會有所不同,具體取決於您使用的框架的多少。

希望這會有所幫助。

6

我的想法是,我還沒有發現任何問題與Json烘烤。我會建議一起去,直到你發現一些不起作用的東西。更少的依賴性使調試變得更簡單。

+1

完全同意。 Json.net是一個非常好的庫,但除非你需要.NET選項之外的功能,否則它只是你需要管理的不必要的依賴項。 – jswanson 2010-07-27 15:07:33

1

在過去,我曾與一個.NET JSON庫一起工作,該庫使用選擇加入或選擇退出方法來表示哪些類的成員被序列化。在回顧NerdDinner示例應用程序時,我在SearchController中看到一個名爲JsonDinner的類,它看起來像一個普通的Dinner類,但似乎只是爲了正確輸出一些可能爭論的額外細節,只是與視圖有關而不是真正與模型相關特徵。在這種簡單的情況下,模型上的一個屬性表示法機制,標識要序列化爲JSON的片段會導致手持代碼的數量減少。