JSON LAB数据处理案例库
结构化日志 · JSON 处理案例
结构化日志中,同一 traceId 可对应多条日志。提取消息便于阅读,但排查仍需保留时间和关联标识;本例不读取服务器日志。
$
JSONPath 字段提取
8 个案例- 结构化日志:提取全部 traceIdJSONPath 字段提取
- 结构化日志:提取全部 messageJSONPath 字段提取
- 结构化日志:读取第一项 durationMsJSONPath 字段提取
- 结构化日志:按数组顺序提取 levelJSONPath 字段提取
- 结构化日志:提取嵌套 context 对象JSONPath 字段提取
- 结构化日志:读取 summary.total 汇总数JSONPath 字段提取
- 结构化日志:区分明确的 null 和字段缺失JSONPath 字段提取
- 结构化日志:查询尚未提供的 messageAliasJSONPath 字段提取
{}
Schema 数据约束
8 个案例- 结构化日志:检查 traceId 必须存在Schema 数据约束
- 结构化日志:限制 message 不能为空字符串Schema 数据约束
- 结构化日志:限制 durationMs 为非负整数Schema 数据约束
- 结构化日志:检查 sampled 的布尔类型Schema 数据约束
- 结构化日志:约束 level 的枚举值Schema 数据约束
- 结构化日志:拒绝合同以外的额外字段Schema 数据约束
- 结构化日志:用本地 $ref 复用 durationMs 规则Schema 数据约束
- 结构化日志:检查 traceId 数组没有重复值Schema 数据约束
±
JSON 结构对比
8 个案例- 结构化日志:发现新增的 levelNoteJSON 结构对比
- 结构化日志:发现被删除的 sampledJSON 结构对比
- 结构化日志:识别 durationMs 从数字变为字符串JSON 结构对比
- 结构化日志:定位 level 的值变化JSON 结构对比
- 结构化日志:解释 entries 首部插入导致的多处差异JSON 结构对比
- 结构化日志:确认对象字段换序不会产生差异JSON 结构对比
- 结构化日志:识别 messageNote 从 null 变为缺失JSON 结构对比
- 结构化日志:读取包含斜杠和波浪线的字段路径JSON 结构对比
↔
JSON 整理与类型生成
8 个案例- 结构化日志:将接口响应整理为两空格缩进JSON 整理与类型生成
- 结构化日志:压缩 JSON 并保留字段和值JSON 整理与类型生成
- 结构化日志:递归排序对象字段并保留数组顺序JSON 整理与类型生成
- 结构化日志:把中文字符串写为 Unicode 转义JSON 整理与类型生成
- 结构化日志:把 JSON 文本转为可嵌入的转义片段JSON 整理与类型生成
- 结构化日志:还原一层 JSON 字符串转义JSON 整理与类型生成
- 结构化日志:从接口样本生成 TypeScript 类型草稿JSON 整理与类型生成
- 结构化日志:从样本起草 Draft-07 SchemaJSON 整理与类型生成
durationMs 的单位是毫秒,比较前必须确认两份日志使用相同单位。 所有案例均包含原例、对照输入及实际引擎结果。