文件: core/parser/json.rs:127-158 分类: 解析 / 数据丢失
core/parser/json.rs:127-158
问题: fields.remove(key) 先移除字段,再检查值类型。如果值不是字符串(如 {"level":30}),字段已从 fields 中移除,既不在 level 也不在 fields 中 → 静默数据丢失。
fields.remove(key)
{"level":30}
fields
level
建议修复: 先检查类型,只有成功提取才移除;非字符串值保留在 fields 中。
已修复,提交 8e9600d。
根因: parse_line 中 fields.remove(key) 在类型检查之前执行,非字符串值(如 {"level":30})被移除后 as_str() 返回 None,导致字段既不在提取结果中也不在 fields 中 → 静默数据丢失。
修复方案:
行为变更:
No dependencies set.
The note is not visible to the blocked user.
文件:
core/parser/json.rs:127-158分类: 解析 / 数据丢失
问题:
fields.remove(key)先移除字段,再检查值类型。如果值不是字符串(如{"level":30}),字段已从fields中移除,既不在level也不在fields中 → 静默数据丢失。建议修复: 先检查类型,只有成功提取才移除;非字符串值保留在
fields中。已修复,提交 8e9600d。
根因: parse_line 中 fields.remove(key) 在类型检查之前执行,非字符串值(如 {"level":30})被移除后 as_str() 返回 None,导致字段既不在提取结果中也不在 fields 中 → 静默数据丢失。
修复方案:
行为变更: