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

Node v16环境config.json报Unexpected token }语法错误求助

问题原因

你碰到的Unexpected token } in JSON报错是JSON语法不符合规范导致的,配置里一共有4处问题:

  • 根对象缺失起始符号:你贴的配置开头直接写第一个键值对,少了包裹整个配置的左大括号{,JSON根对象必须成对使用{}包裹。
  • 多余尾随逗号:你自己标注的actions对象闭合位置,也就是}后面多打了一个逗号,JSON标准不允许对象/数组的最后一个成员后面加尾随逗号,多余逗号会直接触发解析错误。
  • 非法占位符:你在数组、对象里写的"..."是无效内容,尤其是放在actions对象、selectMenus数组里的占位符,对象成员必须是"键名":值的键值对格式,单独放字符串属于非法结构,这些占位符要么删掉,要么替换成符合格式的实际配置项。
  • 字符串值未加引号:guildAppReqs.textReqs数组里的150m nw、650 weight没有用双引号包裹,JSON中所有字符串类型的值必须用双引号包裹,裸写文本会解析失败。
修复后的可用配置

注意:JSON原生不支持注释,下面的配置已经移除了所有非法占位符,你后续加新配置项的时候,记得不要在最后一个成员后面加多余逗号。

{
   "discordGuildId":"775307362915450900",
   "hypixelGuildId":"60a690798ea8c9bb7f6d9b30",
   "colours":{
      "main":"00FFF0",
      "secondary":"202225",
      "success":"00FF50",
      "warning":"FFFF10",
      "error":"FF1F00"
   },
   "roles":{
      "guildMemberRole":"955388286539558932",
      "helpers":[
         "890624191508926505",
         "959322231735996426"
      ],
      "adminRole":[
         "847067680791986208",
         "890624191508926505"
      ]
   },
   "scheduledEvents":{
      "leaderboardDataUpdate":"*/1 * */1 * *"
   },
   "channels":{
      "logChannelId":"987630136767705158",
      "appChannelId":"987630136767705158",
      "queueChannelId":"841940876077826048",
      "ticketCategoryId":"955423323095961710",
      "starboardChannelId":"955423323095961710",
      "memberCount":{
         "discord":"960082737249796096",
         "guild":"960082737249796096"
      }
   },
   "emoji":{
      "warning":"<:warning_emoji:868054485992357948>",
      "error":"<:error_emoji:868054485946224680>",
      "star":"<:GoldStar:905915895937892403>",
      "log":"<:log_emoji:868054485933625346>",
      "helpEmoji":"<:KannaSip:889543061821063189>",
      "helpCommands":"<:slash:913172347639435285>",
      "helpButtons":"<:button:913172562001928193>",
      "helpMenus":"<:dropdown_select:914106174754947113>",
      "github":"<:github:888155742719328276>",
      "plus":"<:plus:888072519582634075>",
      "minus":"<:minus:888072653003452516>"
   },
   "selectMenus":[
      {
         "name":"UNIQUE_STRING",
         "description":"STRING",
         "placeholder":"STRING",
         "disabled":true,
         "maxValues":"INTEGER",
         "minValues":"INTEGER",
         "options":[
            {
               "value":"UNIQUE_STRING-example_name_1",
               "label":"STRING",
               "description":"STRING",
               "emoji":"EMOJI"
            },
            {
               "value":"UNIQUE_STRING-example_name_2",
               "label":"STRING",
               "description":"STRING",
               "emoji":"EMOJI"
            },
            {
               "value":"UNIQUE_STRING-example_name_3",
               "label":"STRING",
               "description":"STRING",
               "emoji":"EMOJI"
            }
         ],
         "actions":{
            "UNIQUE_STRING-example_name_1":{
               "actionType":"toggleRole",
               "roleID":"DISCORDID"
            },
            "UNIQUE_STRING-example_name_2":{
               "actionType":"removeRole",
               "roleID":"DISCORDID"
            },
            "UNIQUE_STRING-example_name_3":{
               "actionType":"addRole",
               "roleID":"DISCORDID"
            }
         }
      }
   ],
   "chatbridge":{
      "enabled":true,
      "channelId":"987630984541376533",
      "webhook":"censored",
      "messagelogging":{
         "enabled":false,
         "channelId":"DISCORDID"
      },
      "relogOnKick":{
         "enabled":false,
         "relogAmount":1
      },
      "serverJoinLeaveMessages":{
         "enabled":true
      },
      "guildJoinLeaveMessages":{
         "enabled":false,
         "logging":false
      },
      "autoInviteOnApp":true
   },
   "url":{
      "guild_staff_application":"URL",
      "forums_post":"censored"
   },
   "guildAppReqs":{
      "textReqs":[
         "150m nw",
         "650 weight"
      ],
      "minNetworkLevel":1
   },
   "starboard":{
      "minimumCount":1
   }
}
快速校验方法

改完配置不用启动整个程序,直接在项目根目录执行下面的命令就能验证JSON语法是否合法:
node -e "JSON.parse(require('fs').readFileSync('./config.json', 'utf8')); console.log('JSON配置合法')"
如果输出JSON配置合法就说明语法没问题,要是还有错误会直接打印具体错误位置,方便定位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:15:43