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

Ruby on Rails报JSON::ParserError unexpected token错误排查

错误原因
  • 核心错误:JSON.parse() 的入参要求是合法JSON格式的文本字符串,你的代码直接把表示文件路径的字符串../../test.json传入了方法,解析器会把这段路径文本当成JSON内容解析,自然会抛出格式不匹配的JSON::ParserError。
  • 额外隐患:你对File.join的使用有误,该方法作用是拼接多段路径字符串,单传一个相对路径时,路径寻址依赖Rails运行时的工作目录,大概率会出现找不到目标文件的问题。另外Rails框架默认已加载JSON依赖,不需要在控制器方法内单独写require "json"。
修复方法
  1. 路径拼接优先使用Rails.root生成项目内的绝对路径,彻底避免相对路径寻址错误,路径根据你test.json实际存放的位置调整即可。
  2. 先通过File.read读取目标JSON文件的实际内容,再把读取到的内容传入JSON.parse做解析。

修正后的控制器代码如下:

class FoodController < ApplicationController
  def index
    # 示例:test.json存放在项目根目录时的路径写法,如果存在其他目录替换参数即可
    file_path = Rails.root.join("test.json")
    # 先读文件内容,再解析JSON
    @data = JSON.parse(File.read(file_path))
  end
end

补充说明:如果你的test.json存放在public目录,路径就写Rails.root.join("public", "test.json"),存放在config目录就对应改成Rails.root.join("config", "test.json"),按需调整即可。


内容的提问来源于stack exchange,提问作者Théo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:45:43