0
Kissmetrics出口显然产生无效的JSON当存在字段名称报价,例如,以下是产生的事件之一:修复坏的Json与字段名称转义的报价
{
"ab test group native dialogs on mobile":"Control",
"ab test group "interested" button copy":"Interested",
"_t":1412633724,
"_p":"hk5yxuxcqe/935mkbj+pz8xi0a8="
}
(换行了补充说明了这个问题,我们不能用这些来修复JSON)。
我正在寻找修复这种破碎的JSON的机制。
有索姆假设,我相信我们能够充分利用:
- 我们可以假设,正在生产的JSON是平的(没有嵌套的对象或数组),所以我认为我们可以利用这一点。
- 我相信所有的字段都是字符串,除了_t,但不是100%肯定。
- 我不认为我们可以假设坏的未转义报价将被平衡。
- 我相信KM会从字段名称中删除逗号和冒号,但不能100%确定 - 它们不会从值中删除(尽管我相信值将被正确编码)。
这是一个棘手的问题,因为它很含糊 - 很难说是否感兴趣是一个新的属性或应该在属性名称中转义。我会考虑一个可以识别行的正则表达式(例如,“既没有后面跟着一个:也没有前面跟着一个,可选空白)。这不是完美的,但是如果这些都是属性名称,你可以开始生成一些规则表达式来修复字符串,我建议尝试一下,运行导入和导出任何无法解析并在正则表达式上迭代的东西,以便快速修复。 –
对于此特定问题,事实证明,KM提供了一个脚本修复他们不好的JSON:https://gist.github.com/clay-whitley/8309396 –