PowerShell将字符串转换为json

PowerShell将字符串转换为json,json,powershell,Json,Powershell,在PowerShell中,我从文件中读取了以下字符串,需要将其转换为json: "@{Account='User01';Domain='Domain01';Admin='True'}" 在我的PS脚本中,我尝试这样做(简化): myStr的结果是: "@{Account=\u0027User01\u0027;Domain=\u0027Domain01\u0027;Admin=\u0027True\u0027}" 而不是我可以使用的json。请注意,字符串开头的@符号是我从文件中获得的 如何将

在PowerShell中,我从文件中读取了以下字符串,需要将其转换为json:

"@{Account='User01';Domain='Domain01';Admin='True'}"
在我的PS脚本中,我尝试这样做(简化):

myStr
的结果是:

"@{Account=\u0027User01\u0027;Domain=\u0027Domain01\u0027;Admin=\u0027True\u0027}"
而不是我可以使用的json。请注意,字符串开头的
@
符号是我从文件中获得的


如何将其转换为我可以使用的对象?

您可以尝试一些字符串操作,以获得预期的JSON格式,然后使用
ConvertFrom-JSON
将其转换为

简单示例:(很简单,因为这假定这些被替换的字符将仅是分隔符)

这也可以转换回JSON:

PS C:\> $myobject | ConvertTo-Json
{
    "Account":  "User01",
    "Domain":  "Domain01",
    "Admin":  "True"
}
# First, clean up the string.
PS C:\> $mystring = "@{Account='User01';Domain='Domain01';Admin='True'}"
PS C:\> $mystring = $mystring -replace "^@", ""
PS C:\> $mystring = $mystring -replace "=", ":"
PS C:\> $mystring = $mystring -replace ";", ","
PS C:\> $mystring
{Account:'User01',Domain:'Domain01',Admin:'True'}

# Afterwards, convert to PSCustomObject.
PS C:\> $myobject = $mystring | ConvertFrom-Json
PS C:\> $myobject

Account                                 Domain                                  Admin
-------                                 ------                                  -----
User01                                  Domain01                                True
PS C:\> $myobject | ConvertTo-Json
{
    "Account":  "User01",
    "Domain":  "Domain01",
    "Admin":  "True"
}