今回はajaxフロントエンドの連想配列をバックエンドにjsonに変換する方法をお届けします。 ajaxフロントエンドの連想配列をバックエンドにjsonに変換する際の注意点は以下の通りです。実際のケースを見てみましょう。
多くの人は、Ajax が値を転送するときに配列を直接渡すことができず、Baidu の配列のほとんどが使用できないことに遭遇しましたそこで、私は方法を考えました:ステップ 1: 配列を jsonString に変換する
これはBaidu は、JSON.stringify(arr) は連想配列を変換できないと述べました。 -次元配列、すべての配列を文字列に解析できますこのようにして、ajaxで値を渡すことができます~~~
2番目のステップ:しかし、この方法で変換されたJSON文字列は不完全ですはい、全体配列を直接解析することはできません
の図に示すように、この関数は下位レベルのサブ JSON 文字列をエスケープするためにスラッシュを使用していることがわかります。バックグラウンドの json_decode が最初のレベルを処理するとき、2 番目のレベルは実際にはまだ json_decode 文字列のままです
そのため、バックグラウンドはこの JSON 文字列を解析するための新しいデコード関数が必要です
function arrToJSON(arr) { var json = {}; for (var i in arr) { var vo=arr[i]; if (typeof arr[i] == "object") { json[i]={}; json[i] = arrToJSON(vo); } else { json[i] =vo; } } return JSON.stringify(json); }
この場合、バックグラウンドが JSON 文字列を受け取ると、この関数を使用します。解析することで、完全で正しい多次元配列を取得できます
私のビジネス上のニーズにより、/" のような文字列は存在しないため、これを使用して、部分文字列にまだ JSON 文字列が含まれているかどうかを判断できます。実際のプロジェクトで使用する場合は、通常の判定を変更してください
もちろん、有能な人は最初のステップを完全な JSON 文字列に直接変更して、バックグラウンドで直接 json_decode を使用して解析できるようにすることもできます
この記事の事例を読んで、その方法をマスターした方は、php 中国語 Web サイトの他の関連記事にご注意ください:JS のバブリングとブラウザのデフォルト動作を防ぐ方法
JS
jsとキャンバス合成画像で親ページを更新する方法 WeChatパブリックアカウントポスター機能の作成
以上がAjaxフロントエンド連想配列からJSON、バックグラウンドメソッドへの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。