JSON 格式化与校验

接口返回的 JSON 压成一行,几百个字符里找一个字段基本不可能。下面三种方法都能解决, 第一种在你浏览器里完成,带 token 的响应不会上传——这是很多在线工具最容易出事的地方。

方法 1:浏览器本地格式化

JSON 格式化工具:粘进去自动排版,语法错误会指出第几行第几列, 支持压缩和转义。全部在本地解析,不发请求。

格式化 JSON →

方法 2:jq(服务器上一行命令)

# 格式化并高亮
curl -s https://api.example.com/data | jq .

# 只取需要的字段
jq '.items[] | {id, name}'

# 校验语法:有错会打印位置
jq . broken.json
# parse error: Expected value at line 3 column 12

jq . 后面那个点不能省,它不是「随便什么」的意思,是「整个文档」。

方法 3:Python 校验并定位

import json
try:
    json.loads(text)
except json.JSONDecodeError as e:
    print(f"第 {e.lineno} 行 第 {e.colno} 列: {e.msg}")
    print(text.splitlines()[e.lineno - 1])
    print(" " * (e.colno - 1) + "^")

Unexpected token 类报错怎么定位

让 LLM 稳定输出合法 JSON

模型输出 JSON 失败,多半不是「能力不够」,而是你没给它结构约束: 用 JSON Schema / structured output,并处理尾逗号、多余说明文字这两种最常见污染。