Web サービスにリクエストを送信するために JSON にシリアル化する必要があるリストを持つモデルがあります。
問題は、私のモデルには、特定の形式でシリアル化する必要があるリストがあることです。
私のクラスは次のようになります。
[DataContract()]
public class StanjeZalihaLek : BaseParameters
{
[DataMember(Name = "datumStanje")]
public string _datumStanja;
[DataMember(Name = "type")]
public int Type { get; set; }
[IgnoreDataMember]
public DateTime? DatumStanja { get; set; }
[IgnoreDataMember()]
public List<Lek> ListaLek { get; set; }
[OnSerializing()]
protected void OnSerializingMethod(StreamingContext context)
{
_datumStanja = DatumStanja?.ToString(FormatDate);
}
}
したがって、List ListaLek { get; を除くすべての要素は問題ありません。設定; 次のようなメンバー:
[DataContract()]
public class Lek
{
const string FormatDate = "dd.MM.yyyy";
[DataMember(Name = "datumUlaz")]
string _datumUlaza;
[DataMember(Name = "datumRok")]
string _rokUpotrebe;
[DataMember(Name = "jkl")]
public string JedinstvenaKlasifikacijaLeka { get; set; }
[DataMember(Name = "kolicina)")]
public double Kolicina { get; set; }
[DataMember(Name = "kpp")]
public string Kpp { get; set; }
[IgnoreDataMember]
public DateTime? DatumUlaza { get; set; }
[IgnoreDataMember]
public DateTime? RokUpotrebe { get; set; }
[OnSerializing()]
protected void OnSerializingMethod(StreamingContext context)
{
_datumUlaza = DatumUlaza?.ToString(FormatDate);
_rokUpotrebe = RokUpotrebe?.ToString(FormatDate);
}
}
これは、シリアル化されたコードが次のようになるはずの方法です。
{
"idZu": "12345678",
"user": "ustanova1",
"pass": "pass1w0rd",
"type": "1",
"datumStanje": "26.02.2019",
"0": {
"jkl": "0010200",
"kolicina": "4",
"kpp": "071",
"datumUlaz": "26.02.2019",
"datumRok": " 31.12.2019"
},
"1": {
"jkl": "0010220",
"kolicina": "8",
"kpp": "071",
"datumUlaz": "26.02.2019",
"datumRok": " 31.12.2019"
},
"2": {
"jkl": "12205014",
"kolicina": "12",
"kpp": "071",
"datumUlaz": "26.02.2019",
"datumRok ": "31.12.2019"
}
}
したがって、リストの新しい各要素には DataMember 名として番号が付けられ、idZu、user、および pass は、StanjeZalihaLek が派生する BaseParameters クラスからのパラメーターです。
何か案は?ありがとう