安全地解析寬鬆的JSON
在處理JSON 資料時,在不訴諸潛在危險的eval 函數的情況下解析「寬鬆」的JSON 是一個常見的挑戰可能不遵守嚴格的JSON 語法。雖然 JSON.parse() 需要引用鍵,但出於方便或遺留原因,某些場景需要使用不含引號的鍵來解析 JSON。
安全處理「寬鬆」JSON 的一種方法是在解析 JSON 之前對其進行清理。使用正規表示式替換,您可以將不含引號的鍵轉換為引號的鍵,同時保留 JSON 結構的其餘部分。
var badJson = "{muh: 2}"; var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');
在此範例中,正規表示式搜尋由可選單引號或雙引號包圍的不含引號的鍵,後面跟著一個冒號。然後,它用正確的引號的鍵語法替換匹配項,確保 JSON 字串現在符合正確的 JSON 格式。
一旦JSON 字串被清理,您就可以使用JSON.parse() 安全地解析它:
JSON.parse(correctJson);
此方法允許您使用不帶引號的鍵解析“寬鬆”的JSON,同時保持JSON 解析的安全性和可靠性,而無需自訂解析器或eval 等不安全技術。
以上是如何在不使用'eval”的情況下安全地解析寬鬆的 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!