c# - c#忽略为空的属性
问题描述
我正在Web Api Application
使用 Framewrok 4.5进行 C#
该方法检索一个class
像这样定义的
public class BGBAResultadoOperacion
{
public string Codigo { get; set; }
public string Severidad { get; set; }
[DataMember(Name = "Descripcion", EmitDefaultValue = false)]
public string Descripcion { get; set; }
}
我不需要检索那些NULL
. 出于这个原因,我定义了描述属性,如
[DataMember(Name = "Descripcion", EmitDefaultValue = false)]
由于我无法从类中删除属性,因此我将类转换为 Json
var json = new JavaScriptSerializer().Serialize(response);
其中 response 是BGBAResultadoOperacion
类的一个实例。
但是生成的Json说"Descripcion":"null"
我无法使用Json.Net
,因为我使用的是 Framework.4.5。
如何检索避免为空的属性的数据?
谢谢
解决方案
使用 Newtonsoft.Json 进行序列化时使用 NullValueHandling 选项。
从文档中:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person Partner { get; set; }
public decimal? Salary { get; set; }
}
Person person = new Person
{
Name = "Nigal Newborn",
Age = 1
};
string jsonIncludeNullValues = JsonConvert.SerializeObject(person, Formatting.Indented);
Console.WriteLine(jsonIncludeNullValues);
// {
// "Name": "Nigal Newborn",
// "Age": 1,
// "Partner": null,
// "Salary": null
// }
string jsonIgnoreNullValues = JsonConvert.SerializeObject(person, Formatting.Indented, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
Console.WriteLine(jsonIgnoreNullValues);
// {
// "Name": "Nigal Newborn",
// "Age": 1
// }
推荐阅读
- python - Error: RuntimeError: file
line 1: Unable to create/find dependency node - php - PHP echo does not display JSON from server
- postgresql - How do I make 'SELECT COUNT(*) from clicks' faster?
- javascript - 如果验证失败,如何将 laravel 请求数据传递给 java-script
- python - How to extract strings between two markers for each object of a list in python
- amazon-web-services - AWS S3 Policy, Allow all resources and deny some
- python-3.x - 收到警告:“ConvergenceWarning:目标未收敛。您可能需要增加迭代次数。” 在 ElasticNetCV 中
- php - WooCommerce 中特定单个产品页面的附加自定义按钮
- string - 我在这里做错了什么?(AppleScript 删除字符串的多个部分)
- linq - 将动态字符串输入解析为 LINQ 查询