如何在运行时从JSON / XML序列化中排除数据成员

时间:2016-05-04 11:31:49

标签: c# entity-framework serialization

我的web.config中有一个字符串列表,它描述了允许在我的web api中序列化的模型成员的名称(由Entity Framework生成)。
我如何例如在运行时设置# Dummy Data rng = pd.date_range('1/1/2011', periods=5000, freq='min') ts = pd.Series(np.random.randn(len(rng)), index=rng) df = pd.DataFrame(ts, columns=['ts']) df_1 = df.resample('5min').last() # Change index to account for futures hours df_1.index = pd.to_datetime(df_1.index.values + np.where((df_1.index.time >= datetime.time(17)), pd.offsets.Day(1).nanos, 0)) # Pivoting df_1 and making some formatting changes df_2 = pd.pivot_table(df_1, index=df_1.index.date, columns=df_1.index.time, values='ts') df_2.columns = df_2.columns.map(lambda t: t.strftime('%H%M')) df_2_cols = df_2.columns.tolist() for i in range(len(df_2_cols)): if df_2_cols[i][0] == '0': df_2_cols[i] = df_2_cols[i][1:4] 属性?
我们的想法是,不应该公开所有数据,应该公开应该公开的配置,而不需要重新编译。
到目前为止,我只是将该列表中未包含的成员的所有值设置为[IgnoreDataMember]。但是这种解决方案不是最佳的,例如null类型的成员被序列化为datetime,此外,响应包含许多不必要的信息(响应可以增长到150MB)。因此,简单地从序列化过程中删除成员会更好。

2 个答案:

答案 0 :(得分:1)

您可以使用以下属性:

[XmlIgnore]表示XML或[JsonIgnore]表示JSON。

例如:

[XmlIgnore]
public string MyString { get; set; }

[JsonIgnore]
public string MyString { get; set; }

希望这有帮助。

答案 1 :(得分:0)

我用if (emridhene.toString() == null || emridhene.toString() == "") { mTextViewKonfirm.setText("Ju lutem shkruani nje Emer"); } else{ mTextViewKonfirm.setText(emridhene); } 解决了这个问题。因此,所有设置为null的属性都不包含在响应中。但是,这不是最佳解决方案,因为现在我无法发送任何空值,并且swagger也会显示完整模型。