私のアプリケーションはasp.netです。いくつかの値をサーバーに送り返す必要があります。このために、オブジェクトを作成してシリアル化し、サーバーに送信します。サーバーで私はそれをデシリアライズしようとします 以下は私のコードです
[Serializable]
public class PassData
{
public PassData()
{
}
public List<testWh> SelectedId { get; set; }
public string SelectedControlClientId { get; set; }
public string GroupTypeId { get; set; }
public string SectionTypeId { get; set; }
}
[Serializable]
public class testWh
{
public testWh()
{
}
public string Id { get; set; }
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
//this can not serialize the SelectedId and the count remains 0
PassData data = serializer.Deserialize<PassData>(jsonString);
//this serialize in an anonymous object with key value pair
var data2 = serializer.DeserializeObject(textHiddenArguments.Text);
以下は私のJsonシリアライズ文字列です
{
"SelectedId":{"0":"ABCD","1":"JKLM"},
"SelectedControlClientId":"YTUTOOO",
"GroupTypeId":3,
"SectionTypeId":"1"
}
引用符でエスケープされた文字列
"{\"SelectedId\":{\"0\":\"ABCD\",\"1\":\"JKLM\"},\"SelectedControlClientId\":\"YTUTOOO\",\"GroupTypeId\":3,\"SectionTypeId\":\"1\"}"
私の問題は選択されています Id は testWH オブジェクトの配列です。しかし、逆シリアル化しようとすると、リストである PassData の SelectedId プロパティがシリアル化されず、カウントがゼロのままになります。
リストの代わりに配列を使用しようとしましたが、「パラメーターの少ないコンストラクターはありません...」という例外が発生しました
ここで私が間違っていることを誰かが説明できますか?