You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除PowerShell输出中键名的双引号以适配curl请求

问题解决:PowerShell构造非标准JSON适配curl请求

问题背景

调用接口时,只有移除JSON键名的双引号,curl请求才能正常执行。硬编码键名无引号、字符串值用单引号的非标准格式(比如{name: 'test', age: 20})测试端点完全没问题,但用PowerShell的ConvertTo-Json生成的标准JSON(键名带双引号、值用双引号)会导致curl请求失败,触发解析错误。

解决方案

由于接口要求非标准的类JS对象格式,我们可以在生成标准JSON后,通过字符串替换调整为目标格式:

1. 构造对象并生成标准JSON

先创建PowerShell对象,用ConvertTo-Json输出标准JSON:

$jsonObj = [PSCustomObject]@{
    name = "test"
    age = 20
}
$standardJson = $jsonObj | ConvertTo-Json -Compress

此时输出的标准JSON为:{"name":"test","age":20}

2. 替换为非标准格式

通过-replace正则替换,去掉键名的双引号,将字符串值的双引号改为单引号:

$nonStandardJson = $standardJson -replace '"(\w+)":', '$1:' -replace ': "([^"]+)"', ": '$1'"

处理后得到目标格式:{name: 'test', age:20}

3. 传入curl执行请求

用单引号包裹处理后的JSON,避免PowerShell解析双引号导致的问题:

curl -X POST -H "Content-Type: application/json" -d '$nonStandardJson' https://your-api-endpoint.com

补充说明

这种非标准格式不符合JSON规范,本质是接口端兼容了JavaScript对象字面量的解析逻辑。如果后续接口修复为支持标准JSON,建议直接使用ConvertTo-Json的原生输出即可。

内容的提问来源于stack exchange,提问作者cmill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:57:02