2016-03-25 12 views
1

私は2つのlinqクエリを実行し、結果をJagged Arrayに挿入するメソッドをWebサービスに用意しています。私は今配列をシリアル化して逆シリアル化しようとしています。私はnewtonsoft jsonを使っています。ギザギザの配列をシリアライズおよび逆シリアル化するC#

追加情報:

は、しかし、私は次の私が得る配列をデシリアライズしようとするタイプのSystem.Arrayのインスタンスを作成できませんでした。タイプはインタフェースまたは抽象クラスであり、 をインスタンス化できません。パス '[0] [0]'、行1、位置私のWebサービスメソッド3.

私は(直列化)している:

Array[][] myArray = new Array[2][]; 
myArray[0] = mtsections; //linq query 1 
myArray[1] = sectionDetails; //linq query 2 

string myp = JsonConvert.SerializeObject(myArray); 

return myp; 

そして、私のクライアントで私が持っている(デシリアライズ):

誰でも知っていることは分かっていますか?

ありがとうございました。

+0

'mtssections'と' sectionDetails'の種類は何ですか? –

+0

私のlinqクエリの最後に私は'ToArray() 'を呼び出します。彼らは型配列です。私はクライアントでjsonの文字列を見ることができるので、これは問題ではないと思います。 –

+0

ドキュメントを参照してください、抽象クラスです。 https://msdn.microsoft.com/en-us/library/system.array(v=vs.110).aspx私はあなたのArray [] []を間違って使っていると思います。 – Saleem

答えて

0

これは、デフォルトのコンストラクタを使用して最初にオブジェクトを作成し、次に内部値を埋め込むことによって逆シリアル化が実行されるためです。ここでは、抽象クラスであるArrayクラスを使用しています。したがって、インスタンスを作成することはできません。

異なるタイプの2つの配列を使用する場合は、単純な解決策は2つのjsonsを送信することです。

関連する問題