2012-06-29 91 views
16

在.NET中對JSON進行編碼和解碼時使用什麼更好?我已經嘗試過,至此JsonConvert似乎做得很好。過去,我成功使用了JavaScriptSerializer,但最近在使用中遇到了一些問題。使用JSON.NET比使用.NET類更好嗎?JSON.NET JsonConvert vs .NET JavaScriptSerializer

使用合適的庫對json進行編碼/解碼的首選函數是什麼?我使用JSON.NET中的SerializeObject/DeSerializeObject和.NET中的Serialize/DeSerialize。

感謝

+0

有在這裏[很好的比較](http://www.servicestack.net/mythz_blog/?p=344)在速度方面。即使閱讀了這篇文章,我已經使用了Newtonsoft.Json,因爲它對我來說是一份體面的工作。 – toske

回答

27

我覺得this正是你要找的那種比較。

它基本上說,JSON.Net是更好,因爲它除其他事情......

  • 更快
  • 擁有LINQ以JSON支持
  • 可以轉換 JSON來並從XML

在我看來,唯一積極的,(這是一個小的積極),我可以看到內置序列化器是沒有額外的外部依賴管理。

編輯:Codeplex正在關閉一天,因此您還可以找到比較here,只需在頁面上搜索「功能比較」即可。

+0

_Is faster_你測試了嗎?我嘗試過使用.NET 4.5.2和Json.NET 9.01,它的速度並不比JavaScriptSerializer快。官方網站的速度統計指的是JSON.NET 5 ...有點過時了! – krlzlx

+1

@krlzlx .Net 4.5.2於2015年5月發佈,幾個月前發佈了JSON.Net 9.01,同時我在3年前在2013年編寫了這個答案。爲什麼不提供更新的答案,而不是使用指標! – Haohmaru

+0

對不起,我知道你的答案是從2013年開始的。但是你沒有提供任何指標,除了Json.NET網站上的指標。當我測試它時,我感到很失望。就這樣。 – krlzlx

9

很長一段時間,我的應用程序使用JavascriptSerializer,並沒有看到真正的遷移理由。即使性能比較聲稱巨大的百分比收益,我們正在說毫秒。

但這裏的遷移一個非常非常好的理由:JavascriptSerializer沒有.Net Core用,因爲它是System.Web所以一部分,如果你使用JavascriptSerializer,你就完蛋了,不得不遷移到JSON.net

+1

這是考慮+1的一個好處 – Haohmaru