【发布时间】:2022-01-04 00:55:42
【问题描述】:
在 Javascript 中,我需要“修复”一个字符串,它应该是 JSON 有效的,但可能不是。该字符串具有以下格式(未知部分标有“
[
{ "key_1": "ok_data", "key_2": "something_valid <INVALID_CHARS>"},
{ "key_1": "ok_data", "key_2": "some_valid_value"}
]
"INVALID_CHARS" 是使 JSON.parse() 函数失败的字符。 错误始终定位在此数组元素的“key_2”属性上。
请注意,这些字符来自随机二进制数据,因此可以是任何字符。
我想找到最简单的解决方案,或者至少是最不容易出错的解决方案。
我想过替换无效字符,但是单反斜杠字符后跟非特殊字符也存在问题,也会引发错误或引号字符。 而且我可能没有想到所有可能的错误。
谢谢。
【问题讨论】:
-
是否要删除或替换无效字符?
-
如果
INVALID_CHARS包含"或", foo: "bar",您如何知道一个值在哪里结束,而下一个值在哪里开始? -
您是否尝试将所有
"s 替换为\"? -
这是问题的一部分,是的。人眼会知道如何修复它,因为它会看到数组中的下一个有效对象。
-
我还需要删除无效字符,但我不知道如何找到所有这些字符的列表。那些在 JSON.parse() 中抛出“无效字符”错误的人。
标签: javascript json parsing