相关疑难解决方法(0)

如何从Json序列化中排除属性

我有一个我序列化的DTO类

Json.Serialize(MyClass)
Run Code Online (Sandbox Code Playgroud)

我怎样才能排除它的公共财产?

(它必须是公开的,因为我在其他地方的代码中使用它)

c# json

216
推荐指数
7
解决办法
23万
查看次数

使用 System.Text.Json 序列化 JSON 时动态忽略密封类上的属性

问题

我可以使用动态忽略密封类中的属性吗System.Text.Json.JsonSerializer

示例代码

来自另一个库的示例类

public sealed class FrozenClass
{
    // [JsonIgnore] <- cannot apply because I don't own this class
    public int InternalId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

默认序列化

var person = new FrozenClass() { InternalId = 3, FirstName = "Dorothy", LastName = "Vaughan" };
var jsonString = System.Text.Json.JsonSerializer.Serialize(person);
Run Code Online (Sandbox Code Playgroud)

实际结果

{ "InternalId": 3, "FirstName": "Dorothy", "LastName": "Vaughan" }
Run Code Online (Sandbox Code Playgroud)

预期结果

{ …
Run Code Online (Sandbox Code Playgroud)

c# serialization json .net-core system.text.json

13
推荐指数
0
解决办法
4119
查看次数

从对象中删除null属性

,我有一个类,其中我现在有三个属性我想做什么,如果在对象中,如果任何一个null或空,那么我想从下面的对象中删除它是我的代码.

public class TestClass
{
    public string Name { get; set; }
    public int ID { get; set; }
    public DateTime? DateTime { get; set; }
    public string Address { get; set; }
}
       TestClass t=new TestClass();
        t.Address="address";
        t.ID=132;
        t.Name=string.Empty;
        t.DateTime=null;
Run Code Online (Sandbox Code Playgroud)

现在我想要TestClass的对象,但是Name和DateTime属性不应该是它们在对象中,是否可能?请帮我

c# properties object

3
推荐指数
2
解决办法
2万
查看次数