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

REST Client调用FHIR接口报错HAPI-1861:JSON含非法字符@

解决FHIR请求中REST Client变量提取引发的JSON解析错误

问题根源

你把REST Client的变量提取语句@patientId = {{createPatient.response.body.$.id}直接写进了请求的JSON正文里,HAPI FHIR服务器会把@当成FHIR资源JSON的一部分,但FHIR的JSON格式不允许这种非法字符,所以触发了HAPI-0450和HAPI-1861解析错误。另外你的提取语句还少了一个闭合的},这也会导致工具解析异常。

修复步骤

  • 把变量提取和请求正文分开:REST Client的变量提取语句属于工具的控制语法,必须放在请求体之外,一般是在请求的头部区域(请求方法、URL之后,JSON正文之前),或者单独用###分隔的块里。比如正确的写法:
    POST {{fhirBaseUrl}}/Patient
    Content-Type: application/fhir+json
    
    {
      "resourceType": "Patient",
      "name": [
        {
          "family": "Smith",
          "given": ["John"]
        }
      ]
    }
    
    ### 提取返回的患者ID
    @patientId = {{createPatient.response.body.$.id}}
    
  • 补全语法错误:确保提取语句的括号闭合,正确格式是@patientId = {{createPatient.response.body.$.id}},缺失的闭合括号会导致工具无法正确识别提取规则,甚至把错误内容传入请求。
  • 正确引用变量:后续请求要使用patientId时,在URL或请求参数里用{{patientId}}即可,不要混入JSON正文。比如查询这个患者的请求:
    GET {{fhirBaseUrl}}/Patient/{{patientId}}
    Content-Type: application/fhir+json
    

核心提醒

REST Client的变量定义是工具专属语法,和FHIR资源本身无关,绝对不能放到请求的JSON资源内容里,FHIR服务器只接受符合规范的资源格式,任何额外的非规范字符都会触发解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:38:12