ホームページ  >  記事  >  ウェブフロントエンド  >  Ajaxフロントエンド連想配列からJSON、バックグラウンドメソッドへ

Ajaxフロントエンド連想配列からJSON、バックグラウンドメソッドへ

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-16 10:28:442165ブラウズ

今回はajaxフロントエンドの連想配列をバックエンドにjsonに変換する方法をお届けします。 ajaxフロントエンドの連想配列をバックエンドにjsonに変換する際の注意点は以下の通りです。実際のケースを見てみましょう。

多くの人は、Ajax が値を転送するときに配列を直接渡すことができず、Baidu の配列のほとんどが使用できないことに遭遇しました

そこで、私は方法を考えました:

ステップ 1: 配列を json

String に変換する

これは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 を使用して解析できるようにすることもできますAjaxフロントエンド連想配列からJSON、バックグラウンドメソッドへ

この記事の事例を読んで、その方法をマスターした方は、php 中国語 Web サイトの他の関連記事にご注意ください:

JS のバブリングとブラウザのデフォルト動作を防ぐ方法

JS

jsとキャンバス合成画像で親ページを更新する方法 WeChatパブリックアカウントポスター機能の作成

以上がAjaxフロントエンド連想配列からJSON、バックグラウンドメソッドへの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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