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

调用OBJKT API时GraphQL查询报invalid-json错误如何正确编写

问题根因

你遇到的报错和逗号、大括号位置无关,核心来自两个独立错误:

  • 请求体JSON格式非法:手动拼接JSON字符串时,query字段值内部的双引号没有正确转义,导致JSON解析器读到钱包地址位置时,误判字符串提前结束,抛出预期逗号或闭合括号的解析错误。
  • GraphQL查询语法不符合规范:标准GraphQL查询不能直接把筛选条件裸写为query值,必须包裹在操作块内,且明确指定需要返回的字段,否则就算JSON格式正确,也会触发GraphQL语法报错。
修复方案

不要手动拼接JSON字符串,直接构造JS对象后用JSON.stringify序列化,从根源避免转义错误,同时补全正确的GraphQL查询结构:

// 先写对GraphQL查询结构,再做JSON序列化
var data = JSON.stringify({
  query: `
    query {
      event(where: {creator_address: {_eq: "tz1SmSqHY1nfy4Wyw9igVow4okezFB4ztXG2"}}) {
        // 替换为你实际需要获取的返回字段,例如事件ID、创建时间、关联代币信息等
        id
        created_at
        creator_address
      }
    }
  `
})

如果一定要手动拼JSON字符串,必须对query值内部所有双引号做转义,示例写法如下 (不推荐,极易出错):

var data = '{"query":"query { event(where: {creator_address: {_eq: \"tz1SmSqHY1nfy4Wyw9igVow4okezFB4ztXG2\"}}) { id created_at } }"}';
调试建议
  • 写查询时可以先在OBJKT自带的数据浏览器中调试GraphQL语句,确认语句能正常返回预期数据后,再复制到业务代码中使用,配套语法规则可查阅官方API文档。
  • 所有JSON格式的请求体,优先使用编程语言自带的JSON序列化方法生成,不要手动拼接字符串,避免低级格式错误。
  • 你之前转义双引号没生效,大概率是转义符写法错误、或者转义后仍然没有补全GraphQL要求的操作块和返回字段结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:48:28