ホームページ  >  記事  >  ウェブフロントエンド  >  「eval」を使用せずにリラックスした JSON を安全に解析するにはどうすればよいですか?

「eval」を使用せずにリラックスした JSON を安全に解析するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-31 05:44:02531ブラウズ

How to Safely Parse Relaxed JSON Without Using `eval`?

リラックスした JSON を安全に解析する

潜在的に危険な eval 関数に頼らずに「リラックスした」JSON を解析することは、JSON データを扱うときによくある課題です厳密な JSON 構文に準拠していない可能性があります。 JSON.parse() ではキーを引用符で囲む必要がありますが、一部のシナリオでは便宜上または従来の理由から、引用符で囲まれていないキーを使用して JSON を解析する必要があります。

「緩和された」JSON を安全に処理する 1 つのアプローチは、解析する前に JSON をサニタイズすることです。正規表現置換を使用すると、JSON 構造の残りの部分を保持しながら、引用符で囲まれていないキーを引用符で囲まれたキーに変換できます。

var badJson = "{muh: 2}";
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');

この例では、正規表現は、オプションの一重引用符または二重引用符で囲まれた引用符で囲まれていないキーを検索します。 、その後にコロンが続きます。次に、一致したものを正しい引用符で囲まれたキー構文に置き換え、JSON 文字列が適切な JSON 形式を満たすようにします。

JSON 文字列がサニタイズされたら、JSON.parse():

JSON.parse(correctJson);
このメソッドを使用すると、カスタム パーサーや eval などの安全でない手法を必要とせずに、JSON 解析のセキュリティと信頼性を維持しながら、引用符で囲まれていないキーを使用して「緩和された」JSON を解析できます。

以上が「eval」を使用せずにリラックスした JSON を安全に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。