我正在寻找一种有效的方法来选择性地序列化复杂类的某些子属性。
例如,下面是指定命令的输出
获取日期|选择-属性Ticks,TimeOfDay | ConvertTo 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
}
}
使用所需的属性重建类不是所需的解决方案,因为对于实际用例,类更复杂,包含更多的级别。
以下内容不起作用,但可能会更好地理解我正在寻找的内容。
获取日期|选择-属性Ticks,TimeOfDay.TotalMinutes,TimeOfDay.TotalSeconds|转换为Json
你可以做这种事情:
Get-Date | Select-Object Ticks, @{N="TimeofDay";e={[pscustomobject]@{TotalMinutes=$_.TimeOfDay.TotalMinutes;TotalSeconds=$_.TimeofDay.TotalSeconds}}} | ConvertTo-Json