Powershell Can';t从Json获取从ConvertFrom创建的对象的键
当从Powershell Can';t从Json获取从ConvertFrom创建的对象的键,powershell,Powershell,当从convertfromjson创建对象时,它不会创建“普通”对象,并且缺少GetEnumerator()和键 下面是一些演示代码: $string = '{ "OBJECT": "SOP10107", "OBJECTKEY": "2|OSTD-9999 " }' $obj = $string | ConvertFrom-Json $obj # no results returned $obj | % getEnumerator | % { $_.key
convertfromjson
创建对象时,它不会创建“普通”对象,并且缺少GetEnumerator()
和键
下面是一些演示代码:
$string = '{
"OBJECT": "SOP10107",
"OBJECTKEY": "2|OSTD-9999 "
}'
$obj = $string | ConvertFrom-Json
$obj
# no results returned
$obj | % getEnumerator | % {
$_.key
$_.value
}
# no results returned
$obj.keys
$myobj = @{
"key1" = "val1"
"key2" = "val2"
}
$myobj
# returns expected result
$myobj | % getEnumerator | % {
$_.key
$_.value
}
# returns expected result
$myobj.keys
convertfromjson
创建类型为PSCustomObject
的普通对象,就像Select object
++
$string = '{
"OBJECT": "SOP10107",
"OBJECTKEY": "2|OSTD-9999 "
}'
$obj = $string | ConvertFrom-Json
#Examine object type and properties
$obj | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
OBJECT NoteProperty string OBJECT=SOP10107
OBJECTKEY NoteProperty string OBJECTKEY=2|OSTD-9999
#Access known properties directly
$obj.OBJECT
SOP10107
$obj.OBJECTKEY
2|OSTD-9999
如果要循环属性(例如,因为不知道名称),请使用$obj.psobject.properties
,它返回所有属性的数组
#List Name and Value for each property. You can replace Select-Object with `Foreach-Object` to loop through them
$obj.psobject.properties | Select-Object Name, Value
Name Value
---- -----
OBJECT SOP10107
OBJECTKEY 2|OSTD-9999
convertfromjson
创建类型为PSCustomObject
的普通对象,就像Select object
++
$string = '{
"OBJECT": "SOP10107",
"OBJECTKEY": "2|OSTD-9999 "
}'
$obj = $string | ConvertFrom-Json
#Examine object type and properties
$obj | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
OBJECT NoteProperty string OBJECT=SOP10107
OBJECTKEY NoteProperty string OBJECTKEY=2|OSTD-9999
#Access known properties directly
$obj.OBJECT
SOP10107
$obj.OBJECTKEY
2|OSTD-9999
如果要循环属性(例如,因为不知道名称),请使用$obj.psobject.properties
,它返回所有属性的数组
#List Name and Value for each property. You can replace Select-Object with `Foreach-Object` to loop through them
$obj.psobject.properties | Select-Object Name, Value
Name Value
---- -----
OBJECT SOP10107
OBJECTKEY 2|OSTD-9999
$obj.OBJECT
和$obj.OBJECTKEY
?我想这就是你要找的。哎呀。我错过了“这个”的链接。我来试试。$obj.OBJECT
和$obj.OBJECTKEY
?我想这就是你要找的。哎呀。我错过了“这个”的链接。我来试试。这很有效,维韦克提供的链接也是如此。我喜欢你的解释,解决方案也更容易理解。这很有效,Vivek提供的链接也是如此。我喜欢你的解释,解决方案也更容易理解。