Vertex AI向量搜索索引创建失败:GCP存储桶JSON文件MalformedJsonException
Vertex AI向量搜索索引创建失败:JSON格式报错排查与解决
问题场景
尝试通过GCP存储桶中的JSON文件在Vertex AI创建向量搜索索引,操作流程:
- 按GCP指定输入格式将JSON文件上传至GCP存储桶
- 在Vertex AI创建索引时关联存储桶内数据
操作失败,报错信息:
There are invalid records in the input file. com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 2 path $; com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 2 path $
已完成排查:
- 确认JSON文件已正确上传至存储桶且可正常访问
- 测试了Vertex AI官方文档提及的多种JSON格式
- 通过在线JSON验证工具确认文件结构合规
预期索引创建顺利完成,但问题重复出现,报错一致。
可能的解决方向
检查文件编码格式
确保JSON文件使用无BOM的UTF-8编码。部分编辑器保存时会自动添加UTF-8 BOM,Gson解析器会将BOM识别为无效字符,触发行1列2的报错。可通过VS Code等编辑器,将编码切换为UTF-8(而非UTF-8 with BOM)后重新保存上传。统一换行格式
部分Windows系统生成的文件使用CRLF换行,GCP服务可能更兼容LF换行。将文件换行符转换为LF后重新上传测试。排查隐藏字符
使用命令行工具检查文件开头是否存在不可见字符:- Linux/macOS:执行
cat -A your-file.json查看输出开头是否有空格、制表符或控制字符 - Windows:执行
findstr /n "^" your-file.json检查首行内容
若存在此类字符,删除后重新保存上传。
- Linux/macOS:执行
验证JSON Lines格式合规性
如果使用Vertex AI要求的JSON Lines格式(每行一条独立JSON记录),需确保:- 每行是完整的JSON对象,无跨行列的内容
- 每行末尾无多余逗号
- 整个文件没有外层数组包裹(如
[{},{}]是错误格式,正确为每行单独的{...})
用命令行重新上传文件
避免网页端拖拽上传可能导致的文件损坏,使用gsutil命令上传:gsutil cp your-file.json gs://your-bucket/path/
内容的提问来源于stack exchange,提问作者Paritosh Mathur
相关产品推荐
相关产品推荐

