我有一个JSON字符串在谷歌日志中被截断(由于某些原因,无法修复)
json字符串是255000个字符,为简单起见,考虑原始的json如下所示
{ "a": "1",
"b" : [{
"b1": "<span>text b1</span>"
},
{
"b2": "<span>text b2</span>"
}],
"c": "3"
}
截短的字符串会变成
{ "a": "1",
"b" : [{
"b1": "<spa... 34 characters truncated.
当然,如果我尝试使用JSON.parse解析上面的字符串,我会得到一个错误
现在我所考虑的解决方案是使它成为一个有效的JSON,但丢失一些数据,因此我所期望的输出是
{ "a": "1",
"b" : [{
"b1": "<spa"
}]
}
上面所做的是
- 从字符串末尾删除
... 34 characters truncated.
- 通过添加
"
结束字符串(在本例中需要,但也可能不需要) - 添加足够的
]
和}
以使其再次成为有效对象
还有其他一些情况也需要考虑
例如
{ "a": "1",
"b" : [{
"b1": ... 34 characters truncated.
或
{ "a": "1",
"b" : [{
"b1 ... 34 characters truncated.
做这件事的最佳方法是什么?
我尝试了dirty-json
库来修复,但实际上对这种情况没有帮助
2条答案
按热度按时间zdwk9cvp1#
npm包untruncate-json按预期运行
输出:
pes8fvy92#
恐怕你得自己做这件事了。不过你的方法听起来是个好的开始。