0

JSON.NETを使用して、1つのデータテーブルでデータセットをシリアライズおよびデシリアライズし、JSONからデータセット/データテーブルに戻す方法を見つけようとしていますが、私が見つけたすべてのサンプルと例は、データセットまたはデータテーブルからのシリアライズのみですJSON に変換し、決して双方向ではありません。XML のシリアル化されたデータセットとデータテーブルを処理するシステムがあり、これらは引き続きその形式で保持する必要がありますが、特定の UI ビューでデータを JSON としてレンダリングできるようにします。

データは null 値を持つことができ、それは有効です。

どんな助けでも大歓迎です。

例 (一方向のシリアル化):
http://www.west-wind.com/weblog/posts/2008/Sep/03/DataTable-JSON-Serialization-in-JSONNET-and-JavaScriptSerializer

4

2 に答える 2

2

これはすべて、逆シリアル化をどのように管理するかによって異なります。個人的には、次のように機能する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-動的-JSON-解析

于 2012-10-31T19:02:56.337 に答える
2

次のリンクは、あなたが望むことを行う Newtonsoft.Json.Converters.DataTableConverter.cs のソースへのリンクです。これは非常に簡単で、最適なルートのようです。

https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Converters/DataTableConverter.cs

于 2012-10-31T20:45:54.870 に答える