powershell - 在powershell中序列化复杂类时排除或选择性地包含子属性
问题描述
我正在寻找一种有效的方法来选择性地序列化复杂类的某些子属性。
例如,下面是指定命令的输出
获取日期 | 选择 -Property Ticks, TimeOfDay | 转换为 JSON
{
"Ticks": 637590063235806354,
"TimeOfDay": {
"Ticks": 399235806354,
"Days": 0,
"Hours": 11,
"Milliseconds": 580,
"Minutes": 5,
"Seconds": 23,
"TotalDays": 0.46207847957638887,
"TotalHours": 11.089883509833333,
"TotalMilliseconds": 39923580.635400005,
"TotalMinutes": 665.39301059,
"TotalSeconds": 39923.5806354
}
}
我希望我的序列化类看起来像这样:
{
"Ticks": 637590063235806354,
"TimeOfDay": {
"TotalMinutes": 665.39301059,
"TotalSeconds": 39923.5806354
}
}
重建具有所需属性的类并不是真正的用例所需的解决方案,该类更复杂并且包含更多级别。
以下内容不起作用,但可能对我正在寻找的内容有更好的理解。
获取日期 | 选择 - 属性刻度、TimeOfDay.TotalMinutes、TimeOfDay.TotalSeconds | 转换为 JSON
解决方案
你可以做这样的事情:
Get-Date | Select-Object Ticks, @{N="TimeofDay";e={[pscustomobject]@{TotalMinutes=$_.TimeOfDay.TotalMinutes;TotalSeconds=$_.TimeofDay.TotalSeconds}}} | ConvertTo-Json
推荐阅读
- node.js - 无论我尝试什么,npm 'command not found'
- git - 无法推送 git:权限被拒绝
- javascript - Chrome 扩展在注入脚本和 popup.js 之间进行通信
- scala - 从 Scala 项目中排除特定的隐式
- python - Python Tkinter - 如何从开始窗口访问父类字典
- c# - 如何使用 Azure 存储表服务处理实体转换错误
- gradle - Gradle:尝试构建 *.so 不会产生任何结果
- django - 如何从Django中的另一个函数访问函数中的变量
- r - sjt.lmer 显示不正确的 p 值
- reporting-services - MDX:获取参差不齐的层次结构叶子的父级