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

Mary-Kate Olsen
リリース: 2024-10-31 05:44:02
オリジナル
583 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート