Skip to content
FunCoding

Search

Search docs, Skills and MCP

无头输出格式

解析单对象 JSON 与 JSONL 事件,区分 CLI 包装和模型回答中的数据。

This page has not been translated into English yet. The original Chinese version is shown below.

--output-format(-o)选择输出表示方式:text 是默认文字,json 返回一个对象,stream-json 返回逐行事件。输出格式改变接口,不改变任务的业务正确性。

单对象 JSON

gemini -p "summarize README.md" --output-format json
字段类型与用途
response字符串,模型最终回复
stats对象,token 和 API 延迟等统计
error可选对象,失败详情

如果让模型返回业务 JSON,它仍位于 response 字符串里。jq -r '.response' 只是提取字符串,不验证其中是否为合法业务 JSON;后续应再解析并检查需要的字段。CLI JSON 包装的合法性不等于模型内容满足你定义的 schema。

JSONL 事件

gemini -p "summarize README.md" --output-format stream-json
事件含义
initsession ID、模型等元数据
message用户与助手消息块
tool_use工具调用和参数
tool_result工具输出
error警告或系统错误,可能非致命
result最终结果、聚合统计和按模型 token 用量

按行解析,处理部分消息,不要把连续多个 JSON 对象当成一个对象读取。只有工具结果不表示整项任务结束;结合 result 和退出码判断。