在 Javascript 中,我需要“修復”一個字串,該字串應該是 JSON 有效的,但可能不是。該字串具有以下格式(未知部分用“<INVALID_CHARS>”標記):
[
{ "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”屬性上。
請注意,這些字符來自隨機二進制資料,因此可以是任何內容。
我想找到最簡單的解決方案,或者至少找到一個最不容易出錯的解決方案。
我想過替換無效字符,但是單反斜杠字符后跟非特殊字符也存在問題,也會引發錯誤或參考字符。而且我可能沒有想到所有可能的錯誤。
謝謝你。
uj5u.com熱心網友回復:
JSON 不允許包含任意二進制資料;它必須是一系列有效的 Unicode 代碼點。(通常這些以 UTF-8 編碼傳輸,但無論如何,任意二進制資料是不可能的。)因此,如果您想包含任意二進制資料,您需要弄清楚如何對其進行明確編碼以進行傳輸。如果不以某種方式進行編碼,那么你將不能夠可靠地區分這恰好有相同的代碼作為位元組"從"終止的字串。
大多數語言中都存在標準庫,您可能會使用多種可能的編碼。最常用的一種是 base-64。
uj5u.com熱心網友回復:
您是否嘗試將所有"s替換為\"?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366619.html
標籤:javascript json 解析
