使用 Powershell 解析从 Web 请求返回的 JSON 字节流而不写入文件

Posted

技术标签:

【中文标题】使用 Powershell 解析从 Web 请求返回的 JSON 字节流而不写入文件【英文标题】:Parsing a JSON Byte Stream Returned from a Web Request using Powershell without writing to a file 【发布时间】:2022-01-12 09:59:40 【问题描述】:

我正在使用以下 Powershell 调用返回 JSON 文件的 URL。 (如果您要将 URL 粘贴到浏览器中,它会下载一个文件,而不是显示原始 JSON):

$fileName = "output.json"
$url = "https://some-url-that-returns-a-json-file-byte-stream"
$jsonFileResponse = Invoke-WebRequest -Method GET -Uri $url -UseDefaultCredentials -OutFile "output.json"
$parsedData = Get-Content -Path $fileName | ConvertFrom-Json

这很好,最后我得到了我的解析数据。

我想知道,有没有一种方法可以在不涉及文件系统的情况下执行此操作,即无需先输出到output.json 的步骤,而是在内存中处理此操作且无需任何磁盘 i/o?

【问题讨论】:

【参考方案1】:

问题不在于转换为“JSON”,而在于转换为文本。

使用[System.Text.Encoding]::ASCII.GetString 似乎可以解决问题。

$url = "https://some-url-that-returns-a-json-file-byte-stream"
$jsonFileResponse = Invoke-WebRequest -Method GET -Uri $url -UseDefaultCredentials 
$parsedData = [System.Text.Encoding]::ASCII.GetString($jsonFileResponse.Content) | ConvertFrom-Json

【讨论】:

以上是关于使用 Powershell 解析从 Web 请求返回的 JSON 字节流而不写入文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Powershell 从 Amazon 获取图书元数据

PowerShell - HTML 解析:从网站获取信息

学习使人快乐1

重定向问题

安全测试1_Web知识简介

powershell 此SharePoint PowerShell从Web应用程序中的所有站点获取使用特定内容类型的列表的URL。