1

配列の配列をクライアントからサーバーに送信しています。stringifyこのようにjQuery ajaxメソッドを使用する

JSON.stringify({ list: FinalList })

サーバー側では、このように取得しています

{\"list\":[[\"Full Name\"],[\"Select any one\",\"Option 1\",\"Option 2\",\"Option 3\"],[\"address\"],[\"contact name\"]]}

しかし、元の形に戻すことはできません。使用してみJavaScriptSerializerましたが、必要な結果を得ることができませんでした。それは私に与えていobjectます。

元の形式に逆シリアル化するにはどうすればよいですか?

4

2 に答える 2

2

JavaScriptSerializerDeserialize< T >(String)メソッドには、逆シリアル化する型を指定する Type パラメーターが必要です。

MyTypeのように、javascript オブジェクトと同じ構造を持つクラス (「リスト」という名前の List または Array プロパティを持つ) が必要です。次に、Deserialize< MyType >(text)を使用して正しいMyTypeインスタンスを取得します。

MyTypeクラスはのようになります。

public class MyType
{
    public IList<string[]> List { get; set; }
}
于 2012-11-27T11:40:59.917 に答える
0

同様の問題があり、最終的に別のソリューションが必要になりました。内部にいくつかのネストされたモデルを含む複雑なモデルがあり、デフォルト/パラメーターなしのコンストラクターがありましたが (そうしないと、実際には 500 エラーが発生します)、デフォルトのコンストラクター内でネストされたモデルを新しくしませんでした。デフォルトの各コンストラクター内でこれらをそれぞれインスタンス化するとすぐに、デシリアライザーはオブジェクトを完全に構築することができました。

于 2014-12-12T18:45:23.337 に答える