我想找到一種方法來序列化和反序列化一個數據表的數據集到JSON和從JSON回到數據集/數據表使用JSON.NET,但是所有我發現的示例和示例只是從數據集或數據表序列化爲JSON,從來沒有兩種方式。我們有一個處理XML序列化數據集和數據表的系統,我們需要仍然保留這種格式,但允許某些UI視圖將數據呈現爲JSON。如何執行序列化和反序列化的數據表往返JSON
數據可以有空值,這是有效的。
任何幫助將不勝感激。
我想找到一種方法來序列化和反序列化一個數據表的數據集到JSON和從JSON回到數據集/數據表使用JSON.NET,但是所有我發現的示例和示例只是從數據集或數據表序列化爲JSON,從來沒有兩種方式。我們有一個處理XML序列化數據集和數據表的系統,我們需要仍然保留這種格式,但允許某些UI視圖將數據呈現爲JSON。如何執行序列化和反序列化的數據表往返JSON
數據可以有空值,這是有效的。
任何幫助將不勝感激。
以下鏈接到源Newtonsoft.Json。 Converters.DataTableConverter.cs可以完成你想要的任務,它非常簡單,看起來像是最好的路線。
死鏈接,有人可以修改thx –
@Chris我更新了鏈接。所有的Newtonsoft.Json源代碼都在Github上,如果你真的想看看引擎蓋下的話。 – evanmcdonnal
這一切都取決於你如何要管理的反序列化。就個人而言,我喜歡去與基於LINQ的方法,其在工作方式如下:
// Get the children of the JSON result (This example is from my own code,
// in which case I have one big "result" node which contains a bunch of
// children that I am interested in deserializing.
var jsonChildren = JObject.Parse(response)["results"].Children();
// Now use a LINQ statement to deserialize. For example...
var jsonResults = jsonChildren.Select(x =>
{
new MyObject
{
Prop1 = x["Var1"],
Prop2 = x["Var2"],
}
});
什麼這一切歸結爲是,你使用JSON孩子IEnumerable的,就像您鍵值對的數組,使用方括號語法訪問必要的後代。 LINQ只是讓事情變得更清潔。
更新
不知道這是否適用於你的情況,但這裏是關於這個問題的一個有趣的文章,使用動態對象http://www.west-wind.com/weblog/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing
本帖](http://stackoverflow.com/a/12208273/102937)說,最新JSON.NET庫有您所需要的能力。 –
非常感謝大家,我不知道更新版本的JSON.NET將允許DataTable轉換。我只需要創建一個定製版本的Newtonsoft.Json.Converters.DataTableConverter,它允許特定的複雜類型作爲列數據類型。 – jon333
[如何在Java中以JSON和XML格式序列化/反序列化?](http://stackoverflow.com/questions/5201593/how-to-serialize-deserialize-in-both-json-and-xml -format-in-java) –