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

PowerShell调用GitHub GraphQL API报JSON解析错误求助

解决PowerShell调用GitHub GraphQL API时的JSON解析错误

我之前也碰到过类似的问题,你遇到的"Problems parsing json"错误,核心原因是你的请求body不是一个完整的JSON对象。

从你输出的"query":"query { viewer { login }}"可以看出来,这只是JSON对象里的一个键值对,缺少了外层的大括号{}。GitHub GraphQL API要求接收的是一个完整的JSON结构,正确的格式应该是:

{"query":"query { viewer { login }}"}

正确构造请求body的两种方式

在PowerShell里,推荐用以下两种方式来避免格式错误:

1. 直接构造正确的JSON字符串

注意要把整个对象用大括号包裹,同时处理好引号(如果你的查询更复杂,这种方式容易出错,优先选第二种):

$body = '{"query":"query { viewer { login }}"}'

2. 用哈希表转成JSON(更可靠)

先创建一个包含query键的哈希表,再通过ConvertTo-Json自动生成正确的JSON格式,这种方式能避免手动拼接字符串时的引号和格式问题:

# 定义查询内容
$graphqlQuery = "query { viewer { login }}"

# 构造哈希表
$requestBody = @{
    query = $graphqlQuery
}

# 转换为JSON格式
$body = $requestBody | ConvertTo-Json

完整的API调用示例

别忘了调用API时要指定Content-Type: application/json,同时带上你的授权令牌:

# 配置请求头,替换成你的GitHub Enterprise令牌
$headers = @{
    "Authorization" = "Bearer YOUR_GITHUB_ENTERPRISE_TOKEN"
}

# 替换成你的GitHub Enterprise实例地址
$apiUri = "https://your-ghe-domain.com/api/graphql"

# 发送请求
try {
    $response = Invoke-RestMethod -Uri $apiUri -Method Post -Headers $headers -Body $body -ContentType "application/json"
    Write-Output $response.data.viewer.login
} catch {
    Write-Error "请求失败: $_"
}

这样调整后,JSON格式就符合GitHub API的要求了,应该就能解决解析错误的问题。

内容的提问来源于stack exchange,提问作者K Split X

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:26:14