在 Powershell 中提取 json 问题

Posted

技术标签:

【中文标题】在 Powershell 中提取 json 问题【英文标题】:Issue Ingesting json in Powershell 【发布时间】:2022-01-10 01:57:34 【问题描述】:

我正在尝试向后端 Azure 函数发送 API 请求,但我遇到了心理障碍。 过去,我从 azure 函数本身的本地 .json 文件中读取数据没有问题。

所以这是我要发送的示例:

"requestType":"CommSite"

在 react 应用程序中,我正在这样做:

fetchRequest = () => 
    console.log ("submitting request");
    const requestOptions = 
      method: 'POST',
      body: JSON.stringify(
        'requestType':'CommSite'
    )

当我尝试读取请求正文时,函数出错。

     $requestBody = $Request.Body
    $requestType = $Request.Body.requestType.ToUpper().Trim()

如果我打印出有效载荷的主体,我可以看到它已经过来了:

"requestType":"CommSite"

此时我需要做什么才能访问各个元素?我尝试了 ConvertFrom-Json (就像我从文件中读取时所做的那样),但这也失败了。我是否需要更改我在客户端调用中组装正文的方式?

【问题讨论】:

“函数出错” - 错误信息是什么? 啊,抱歉-我是想填写的。如果我将代码更改为: $requestBody = $Request.Body | ConvertFrom-Json 。服务中的 json 现在看起来像这样。 @requestType=CommSite; 在我直接引用正文之前。我现在有点倒退 - 我应该更改在客户端转换它的方式还是在服务中做一些不同的事情? 【参考方案1】:

这是由我自己实际引起的问题引起的。当我使用它时,我遇到了 CORS 错误。因为当时我不想解决这个问题,所以我注释掉了标题,这包括“application/json”。这导致内容以文本而不是 json 的形式出现,即使它看起来像 json。

我回过头来解决了 cors 问题,方法是在我正在调用的函数应用中允许原点,并且在我的代码中一切正常。

【讨论】:

以上是关于在 Powershell 中提取 json 问题的主要内容,如果未能解决你的问题,请参考以下文章

-print 通过 npm 打印出字符串,但实际上通过 powershell 进行评估

PowerShell - 从 Outlook 中提取电子邮件信息

TagLib - 从 MP3 中提取专辑封面 (Powershell)

如何使用 powershell 和电子邮件地址从 AD 中提取用户名

从 json 密钥对中提取加密密钥

PowerShell - 递归提取特定文件夹的内容