powershell - 在 cURL 中使用 Powershell 解析 json
问题描述
嗨,我正在尝试执行以下方法以在 power shell 中运行 POST 调用
选项1:
$Body="{ \`"cartItem\`" : {\`"sku\`" : \`"RG1219013\`", \`"qty\`" : \`"1\`", \`"quoteId\`" : \`"QRAeZdoFbieEWHjrRs5X0G1tHRE4el30\`" }}"
选项2:
$Body=@"
{ \"cartItem\" : {\"sku\" : \"RG1219013\", \"qty\" : \"1\", \"quoteId\" : \"QRAeZdoFbieEWHjrRs5X0G1tHRE4el30\" }}
"@
选项3:
$Body = @{
cartItem =
{
sku = 'RG1219013'
qty = '1'
quoteId = 'QRAeZdoFbieEWHjrRs5X0G1tHRE4el30'
}
}
$Json = (ConvertTo-Json $Body)
执行:
$Header = @{ "Content-Type" = "application/json" }
Invoke-RestMethod -Method Post -Body $Body -Uri $UriAddtoCart -Header $Header
我收到错误请求(400),option 1
这是内部错误(500)option 2
option 3
下面jason通过邮递员成功响应
{
"cartItem" :
{
"sku" : "RG1219013",
"qty" : "1",
"quoteId" : "QRAeZdoFbieEWHjrRs5X0G1tHRE4el30"
}
}
这里有什么遗漏吗?
解决方案
Json 文件cartItem =
在选项 3 之后缺少 @ 符号(这种方式将函数分配给cartItem
属性而不是 HashTable)
如果您输出$Json
文件(例如Write-Host $Json
),这将变得清晰。
因此:
$Body = @{
cartItem =
{
sku = 'RG1219013'
...
应该:
$Body = @{
cartItem =
@{
sku = 'RG1219013'
...
推荐阅读
- python - 通过指定多索引从原始数据帧中提取子数据帧
- python - Python 操作数类型表
- javascript - 在调用上方的 ejs 中调用 ajax 函数
- ios - 在 UITableViewCell 上设置 accessibilityElements 后,IOS UITableView 可访问性顺序错误
- c# - EF 核心不允许我两次访问相同的属性
- c# - 在 DataGrid 中设置 UserControl 的属性?
- python - 多列的 Pandas Groupby Multiindex
- java - android studio 不接受获取 Instance() 方法来获取 Firebase 数据
- javascript - 如何使用 react-query 将来自不同 react-query 钩子的数据同步连接在一起?
- python - python 3中GUI的抽象网格