相关疑难解决方法(0)

PowerShell:ConvertTo-Json包含特殊字符的问题

我正在编写一个脚本来更改JSON文件,但是当文件转换回JSON时,它会扩展特殊字符.

例如,JSON文件包含带有"&"的密码.复制问题的快速方法是使用以下命令:

PS>"密码&123"| Convertto-Json输出为:"Password\u0026123"

##Here is how I import the JSON FILE:
$jsonfile = (Get-Content .\example.json -Encoding Ascii) -join "`n" | ConvertFrom-Json
##Exporting JSON FILE without modifying it.
$jsonfile  | ConvertTo-Json |Out-File "new.json"
Run Code Online (Sandbox Code Playgroud)

- 这是一个简化的JSON文件的例子

{
    "Server1":
    {
        "username":"root",
        "password":"Password&dfdf"
    },
    "Server2":
    {
        "username":"admin",
        "password":"Password&1234"
    }
}
Run Code Online (Sandbox Code Playgroud)

powershell json

14
推荐指数
2
解决办法
2万
查看次数

Powershell 转换为 Json 格式错误

我正在使用 win_shell 将 powershell 输出转换为 json 格式,以便稍后可以对其进行过滤。问题是我的 Json 格式很糟糕。

这是代码

    - win_shell: |
         Get-ChildItem -Path <some_path> |
         Where-Object {$_.PSIsContainer} | Sort-Object LastWriteTime -Descending |
         Select-Object -First 20 | ConvertTo-Json
         register: register_results

     - debug:
         var: register_results
Run Code Online (Sandbox Code Playgroud)

我得到的标准输出行不干净,无法在 json 过滤器中使用:

  "stderr": "",
  "rc": 0,
  "stdout_lines": [
      "[",
      "    {",
      "        \"Name\":  \"976\",",
      "  \"FullName\"\"F:\\\\some\\\\path\\\\to\\\\folder\\\\976\",",
      "  \"Parent\":  {",
      "                       \"Name\":  \"first\",",
      "                       \"Parent\":  \"All\",",
      "                       \"Exists\":  true,",
      "                       \"Root\":  \"F:\\\\\",",
      "                       \"Extension\":  \"\",",
      etc...
Run Code Online (Sandbox Code Playgroud)

当我尝试过滤“父级”或“名称”时,这些额外的空格会导致错误。看起来除了“ConvertToJson”之外还必须有其他参数才能使输出更清晰。

有办法做到这一点吗?

powershell json ansible

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

json ×2

powershell ×2

ansible ×1