使用System.Text.Json动态删除JSON属性

6

提示1:不想使用newtonsoft.json

注意2:这不是重复的问题,其他答案使用了newtonsoft.json

注意3:使用.Net 5。

如何使用System.Text.Json从JSON字符串中删除属性?

{
 Name: "Mike",
 Age : 12,
 Location : "Africa"
}

我希望能够根据属性名称和属性值进行删除。例如,删除年龄属性或删除名为Mike的人。


1
为什么不想使用 newtonsoft.json 而是打标签呢? - D-Shih
如何使用 System.Text.Json 从 Json 字符串中删除属性?通过升级到 .NET 6 并使用新的 JsonNode API。 - Guru Stron
2
您可以将这些附加属性放入“扩展数据”属性中,而不会丢失往返操作,请参见 https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-handle-overflow。 - Anand Sowmithiran
2
你可以把它存储为 Dictionary<string, object>,然后简单地删除 Age 键。 - Charlieface
你的json格式不正确。请先发布一个有效的json。"使用System.Text.Json从Json字符串中" - 你是指Json对象还是仅字符串?你可以使用string.replace来处理字符串,不需要任何序列化程序。 - Serge
显示剩余6条评论
1个回答

3

我希望以下解决方案可以帮助您删除属性。
emp是您的对象

var jsonObject = System.Text.Json.Nodes.JsonNode.Parse(emp.ToJson()).AsObject();

移除属性
年龄是员工的属性

jsonObject.Remove(nameof(emp.Age)); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接