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

Solidity合约调用setWord函数报错:JSON位置2处意外token h

Solidity setWord函数参数编码报错的原因排查

这个报错transact to HelloWorldContract.setWord errored: Error encoding arguments: SyntaxError: Unexpected token h in JSON at position 2本质是JSON参数解析失败,通常是你输入参数的格式不符合JSON规范导致的,常见原因有这几个:

  • 参数没加双引号(最常见)
    JSON要求字符串类型必须用双引号包裹,如果你直接输入hello而不是"hello",JSON解析器会把第一个字符h当成非法的语法符号(它期望的是双引号),就会抛出这个错误。
    ✅ 正确输入示例:"hello"
    ❌ 错误输入示例:hello 或者 'hello'(单引号不符合JSON规范)

  • 字符串包含未转义的特殊字符
    如果你的字符串里有双引号、反斜杠这类特殊字符,没有进行转义的话,JSON解析会中断。比如你输入he"llo,JSON会把中间的双引号当成字符串结束标记,后面的内容就会触发语法错误。
    ✅ 正确转义示例:"he\"llo"(用反斜杠转义双引号)

  • 参数类型与合约定义不匹配(间接导致)
    如果setWord函数定义的参数是string类型,但你输入了数字、布尔值这类非字符串类型,且没有正确转换格式,也可能触发编码错误。比如输入123而不是"123",JSON会识别成数字类型,和合约的string参数不匹配。

  • 输入框的格式干扰
    有些钱包或IDE的参数输入框可能会自动添加空格或者特殊符号,比如不小心在引号前后加了不可见字符,也可能干扰JSON解析(这种情况比较少见,但可以检查下输入内容是否干净)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:34:34