と逆シリアル化するJSONは、私は、このJSON文字列をデシリアライズしていたときに一覧
[{"id":"1"},{"id":"2"},{"id":"3"}]
を項目を表すクラスがある:
[DataContract]
public class MyClass
{
public MyClass() {
this._dtcreate = new DateTime();
}
private int _id;
[DataMember(Name = "id")]
public int Id {get;set;}
private DateTime _dtcreate;
}
注ことMyClassのデフォルトコンストラクタ "_dtcreate"のデフォルト値を設定しました。
だから、私はTの配列にJSONをデシリアライズするためにこのコードを使用しています:
public static T[] DeserializeArray<T>(string json)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T[]));
MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json));
T[] gType = (T[])ser.ReadObject(ms);
return gType;
}
私はevalued私の非直列化された配列プロパティ「_dtcreate」には見られないJSON文字列をデシリアライズするとき。
私は、DataContractJsonSerializerは、MyClassのデフォルトのコンストラクタを使用しないと思います。
私は私がdeserialiced私のリストのすべてのオブジェクトは、私のTクラスのdafaultのコンストラクタで作成されていることを確認するために、アレイ「GTYPE」に属するすべてのオブジェクトのインスタンスを作成するために
T obj = Activator.CreateInstance<T>();
を使用することができます?
ありがとうございました!
'DateTime'は構造体です。あなたのコンストラクタは完全に役に立たない。 – SLaks