我情不自禁地看着我空空如也的口袋,想知道我的网络应用程序中是否有可以掏的一分钱。
看着我一直吐出的 JSON,我不禁想知道是否有一种方法可以不序列化默认值,例如:
{
"gservs": {
"EmpresaId": 1044,
"GservsId": 7,
"Descricao": "Cabelos"
},
"EmpresaId": 1044,
"ServicosId": 97,
"GServsId": 7,
"Descricao": "auxiliar geral",
"Informativo": "",
"simNao": false,
"PermiteEncaixe": false,
"UsaQuimica": false,
"CustosGerais": 0.0000,
"Preco": 0.0000,
"Comissao": 0.0000,
"ValPercComissao": "P",
"TipoComissao": false,
"ValPercCustos": "P",
"TipoCusto": false,
"ServicoAux": true,
"ValPercComisAux": "P",
"TipoComissaoAux": false,
"IncidComisAux": "A",
"DiasRetorno": 0,
"TempoExecucao": "00:00:00",
"TempoHora": 0,
"TempoMinMarcacao": 0,
"TempoHoraMarcacao": 0,
"TempoMin": 0,
"Ativo": false,
"Mobilidade": false,
"PermiteSimultaneidade": false,
"ParticipaMilhagem": true
}
如果你检查一下,你可以算出默认值浪费了 406 个字节。我的估计是,在正常的一天结束时,我将浪费大约 1 美元(我在 Azure 区域 3 - 巴西南部),浪费带宽...
不久前我了解到我可以告诉 JsonSerializer 忽略 null
的属性,那么我也可以对“默认”值执行相同的操作吗?
最佳答案
JSON.net 有一个 DefaultValueHandling 枚举来应对不同的场景。尝试类似的东西
var serialiserSettings =
new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });
然后在将对象序列化为 JSON 时使用它。这将删除任何具有默认值的内容。
关于c# - 如何不序列化默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42584194/