以下代碼
$str = '{"attrs": { "c1": "abc", "c2": 123}}'
$json = $str | ConvertFrom-Json
$json.attrs | Get-Member -MemberType Properties | % { echo $_.GetType() }
回傳
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False MemberDefinition System.Object
True False MemberDefinition System.Object
為什么它不知道屬性是否具有stringor的資料型別int?
我想知道該屬性是否具有字串的資料型別。"所以我可以在創建 CSV 字串時包裝 str 值。
($json.attrs
| Get-Member -MemberType Properties
| % { if (it's str) { return "`"$_`"" } else { $_ }
) -join ','
uj5u.com熱心網友回復:
按要求回答您的問題:
使用內在psobject屬性反映給定物件的屬性:
$json.attrs.psobject.Properties.Value | ForEach-Object GetType
要測驗給定屬性是否屬于特定型別:
$propName = 'c1'
$json.attrs.$propName -is [string] # -> $true
然而,正如Santiago Squarzon指出的那樣:
要將parsed-from-JSON 資料匯出到 CSV,您不需要知道屬性的資料型別,因為 (a) CSV 始終是無型別的純文本格式,并且 (b) PowerShell 的Export-Csvcmdlet默認包含中的欄位值"..."。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532923.html
標籤:电源外壳
