[英]PowerShell convert string to json
在 PowerShell 中,我有以下字符串,我從文件中讀取並需要轉換為 json:
"@{Account='User01';Domain='Domain01';Admin='True'}"
您可以嘗試一些字符串操作以獲得預期的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"
}
以上適用於深度最多為 2 的 Json 或 PS 對象。如果您的對象包含嵌套對象,則需要指定
-Depth<\/code>參數。
PS C:\> $json=
'{
"level1":[
{
"attr1":"value1",
"level2":[
{
"attr2.1":"value2.1",
"attr2.2":"value2.2"
}
]
}
],
"Comment":"3-level object"
}'
PS C:\> $psobj = ConvertFrom-Json $json
PS C:\> $psobj
level1 Comment
------ -------
{@{attr1=value1; level2=System.Object[]}} 3-level object
PS C:\> Convertto-Json $psobj
{
"level1": [
{
"attr1": "value1",
"level2": ""
}
],
"Comment": "3-level object"
}
PS C:\> Convertto-Json $psobj -Depth 3
{
"level1": [
{
"attr1": "value1",
"level2": [
"@{attr2.1=value2.1; attr2.2=value2.2}"
]
}
],
"Comment": "3-level object"
}
PS C:\> Convertto-Json $psobj -Depth 4
{
"level1": [
{
"attr1": "value1",
"level2": [
{
"attr2.1": "value2.1",
"attr2.2": "value2.2"
}
]
}
],
"Comment": "3-level object"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.