JSON Lines Viewer - VSCode插件
一个用于在VSCode中查看和编辑JSONL(JSON Lines)文件的插件,提供在紧凑的JSONL格式和易读的JSON数组格式之间快速切换的功能。
功能特性
- 🔄 快速切换视图: 使用快捷键在JSONL和JSON视图之间切换
- 📝 语法支持: 为JSONL文件提供语法高亮和基本编辑功能
- 🎯 智能识别: 自动识别
.jsonl
和.jsonlines
文件
- ⌨️ 键盘快捷键:
Ctrl+Shift+J
(Windows/Linux) 或 Cmd+Shift+J
(Mac)
- 🖱️ 右键菜单: 在编辑器中右键选择"切换JSON视图"
安装方法
开发环境安装
- 克隆或下载此项目到本地
- 在项目根目录打开终端,运行以下命令:
# 安装依赖
npm install
# 编译TypeScript代码
npm run compile
- 在VSCode中按
F5
启动扩展开发宿主
- 在新窗口中打开包含JSONL文件的文件夹
从VSIX安装(未来发布)
code --install-extension pretty-jsonline-0.0.5.vsix
使用方法
基本使用
- 在VSCode中打开一个
.jsonl
或.jsonlines
文件
- 使用以下方式之一切换视图:
- 按快捷键
Ctrl+Shift+J
(Windows/Linux) 或 Cmd+Shift+J
(Mac)
- 右键点击编辑器,选择"切换JSON视图"
- 使用命令面板 (
Ctrl+Shift+P
) 搜索"切换JSON视图"
视图模式
JSONL视图(原始格式)
{"id": 1, "name": "张三", "age": 25}
{"id": 2, "name": "李四", "age": 30}
{"id": 3, "name": "王五", "age": 28}
JSON视图(格式化数组)
[
{
"id": 1,
"name": "张三",
"age": 25
},
{
"id": 2,
"name": "李四",
"age": 30
},
{
"id": 3,
"name": "王五",
"age": 28
}
]
测试示例
项目包含了一个示例文件 example.jsonl
,你可以用它来测试插件功能:
- 在VSCode中打开
example.jsonl
- 使用
Ctrl+Shift+J
切换到JSON视图查看格式化的内容
- 再次按
Ctrl+Shift+J
切换回原始JSONL格式
开发说明
项目结构
jsonline-viewer/
├── src/
│ └── extension.ts # 主要插件逻辑
├── package.json # 插件配置和依赖
├── tsconfig.json # TypeScript配置
├── language-configuration.json # JSONL语言配置
├── example.jsonl # 测试示例文件
└── README.md # 文档
开发命令
# 编译代码
npm run compile
# 监听文件变化并自动编译
npm run watch
# 打包插件
vsce package
技术实现
- 使用VSCode Extension API
- TypeScript开发
- 支持多种文件扩展名(.jsonl, .jsonlines)
- 智能JSON解析和格式化
- 错误处理和用户反馈
常见问题
Q: 切换视图后内容丢失怎么办?
A: 插件会尽力保存原始内容并在切换回JSONL视图时恢复。如果文件在JSON数组视图下被保存,它将保持该格式。当再次尝试切换视图时,如果插件检测到内容是JSON数组格式,它会自动尝试将其转换回JSONL格式。如果遇到问题,可以使用VSCode的撤销功能(Ctrl+Z)。
Q: 支持哪些文件扩展名?
A: 目前支持 .jsonl
和 .jsonlines
扩展名。
Q: JSON格式错误时会怎样?
A: 当尝试切换视图时,如果文件内容既不是有效的JSONL格式,也不是有效的JSON数组格式,插件会显示错误信息。
贡献
欢迎提交Issues和Pull Requests来改进这个插件!
许可证
MIT License
更新日志
0.0.5
- 修复: 解决了标准JSONL文件(每行一个JSON对象,使用实际换行符分隔)在尝试切换到JSON视图时提示无法解析的问题。确保了对正确格式化的JSONL文件的稳健处理。
0.0.4
- 修复: 修正了当初始文件为JSON数组格式时,转换到JSONL视图后内容会变成单行的问题。确保在转换时正确使用实际换行符(
\\n
)而不是字符串(\\\\n
)。
0.0.3
- 重要变更: 移除了在保存文件时自动从JSON视图转换回JSONL格式的功能。现在,如果在JSON数组视图下保存文件,文件将保持为JSON数组格式。
- 增强: 改进了格式处理逻辑。当尝试将视图切换到JSON数组时:
- 如果原始文件内容是JSON数组格式(例如,之前在JSON视图下被保存的文件),插件现在会自动将其转换为JSONL格式,并更新视图。
- 如果原始文件内容无法被解析为JSONL或JSON数组,则会提示错误。
- 更新: 扩展版本号更新。
0.0.2
- 修复: 保存时自动从JSON视图转换回JSONL格式,防止文件格式被意外修改。
- 修复: 改进了对不同换行符(CRLF, LF, CR)的JSONL文件解析,解决了"Unexpected non-whitespace character after JSON"的错误。
- 更新: 扩展版本号更新。
0.0.1
- 初始版本
- 基本的JSONL到JSON视图切换功能
- 键盘快捷键支持
- 右键菜单集成