json - PowerShell 将字符串转换为 json

标签 json powershell

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

"@{Account='User01';Domain='Domain01';Admin='True'}"

在我的 PS 脚本中,我尝试这样做(简化):
$myStr = "@{Account='User01';Domain='Domain01';Admin='True'}" | ConvertTo-Json
$mystr
myStr 的结果是:
"@{Account=\u0027User01\u0027;Domain=\u0027Domain01\u0027;Admin=\u0027True\u0027}"

而不是我可以使用的 json。请注意 @字符串开头的符号是我从文件中得到的。

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

最佳答案

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

简单示例:(很简单,因为这假设被替换的这些字符只会是分隔符)

# 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

这也可以转换回 JSON:
PS C:\> $myobject | ConvertTo-Json
{
    "Account":  "User01",
    "Domain":  "Domain01",
    "Admin":  "True"
}

关于json - PowerShell 将字符串转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33217907/

相关文章:

c# - 将 JSON 发布到 ASP.NET MVC Nullable Short 属性

json - 使用 Go 解析复杂的 JSON

java - 如何将 Json 从 servlet 发送到 JSP,而不将其转换为字符串

powershell - 是否可以/如何使用某些 cmdlet 停止 powershell?

powershell - 在 Powershell 中的转录期间控制换行符 - 可能是记事本

powershell - 使用powershell查找项目中的行数

json - PostgreSQL 9.4 - jsonb 数组的元素到 ts_vector 中

python - 将 Pandas DataFrame的每一行转换为单独的Json字符串

powershell - 将所有本地成员和组一起显示

Powershell "special"开关参数