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

Insomnia中POST API请求遇JSON转义字符语法错误求助

问题分析与解决

错误根源

你遇到的语法错误是因为JSON中的\u0021(Unicode转义的感叹号!)在bash环境下被错误解析,同时bash对特殊字符(如!、$)的处理逻辑导致转义混乱,API收到的内容不符合JSON规范。

解决方案

1. 修复JSON内容

将所有\u0021直接替换为!——感叹号在JSON中无需转义,原转义属于冗余操作,反而引发bash解析问题。修复后的JSON如下:

{"operationName": "Holdings","variables": {"countrycode": "DE","languagecode": "de_DE","fundid": "27854"},"query": "query Holdings($fundid: String!, $countrycode: String!, $languagecode: String!) {\n  Portfolio(\n    fundid: $fundid\n    countrycode: $countrycode\n    languagecode: $languagecode\n  ) {\n    fundname\n    producttype\n    assetclass\n    portfolio {\n      topholdings {\n        asofdate\n        hldngname\n        geocode\n        sectorname\n        brkdwnpct\n        frequency\n        calcbasislocal\n        calctypelocal\n        allocflag\n        hasderivatives\n      }\n      dailyholdings {\n        asofdate\n        frequency\n        secticker\n        isinsecnbr\n        cusipnbr\n        secname\n        quantityshrpar\n        origcouponrate\n        sctrname\n        pctofnetassets\n        mktvalue\n        notionalmktvalue\n        secexpdate\n        assetclasscatg\n        mktcurr\n        contracts\n      }\n      fullholdings {\n        asofdate\n        asofdatestd\n        frequency\n        secticker\n        isinsecnbr\n        cusipnbr\n        secname\n        quantityshrpar\n        origcouponrate\n        sctrname\n        pctofnetassets\n        mktvalue\n        notionalmktvalue\n        secexpdate\n        assetclasscatg\n        mktcurr\n        contracts\n        finalmaturitydate\n        investmentcategory\n      }\n    }\n  }\n}\n"}

2. 正确调用cURL的两种方式

方式一:通过文件传递JSON(推荐,避免字符解析问题)

  • 将修复后的JSON保存为request.json文件
  • 执行cURL命令:
curl -X POST -H "Content-Type: application/json" -d @request.json YOUR_API_URL

方式二:命令行直接传递

用单引号包裹整个JSON内容,防止bash解析其中的特殊字符:

curl -X POST -H "Content-Type: application/json" -d '{
  "operationName": "Holdings",
  "variables": {
    "countrycode": "DE",
    "languagecode": "de_DE",
    "fundid": "27854"
  },
  "query": "query Holdings($fundid: String!, $countrycode: String!, $languagecode: String!) {\n  Portfolio(\n    fundid: $fundid\n    countrycode: $countrycode\n    languagecode: $languagecode\n  ) {\n    fundname\n    producttype\n    assetclass\n    portfolio {\n      topholdings {\n        asofdate\n        hldngname\n        geocode\n        sectorname\n        brkdwnpct\n        frequency\n        calcbasislocal\n        calctypelocal\n        allocflag\n        hasderivatives\n      }\n      dailyholdings {\n        asofdate\n        frequency\n        secticker\n        isinsecnbr\n        cusipnbr\n        secname\n        quantityshrpar\n        origcouponrate\n        sctrname\n        pctofnetassets\n        mktvalue\n        notionalmktvalue\n        secexpdate\n        assetclasscatg\n        mktcurr\n        contracts\n      }\n      fullholdings {\n        asofdate\n        asofdatestd\n        frequency\n        secticker\n        isinsecnbr\n        cusipnbr\n        secname\n        quantityshrpar\n        origcouponrate\n        sctrname\n        pctofnetassets\n        mktvalue\n        notionalmktvalue\n        secexpdate\n        assetclasscatg\n        mktcurr\n        contracts\n        finalmaturitydate\n        investmentcategory\n      }\n    }\n  }\n}"
}' YOUR_API_URL

注意:JSON中的\n在单引号包裹下会被原样传递给API,API可正常解析,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:47:05