ホームページ >ウェブフロントエンド >jsチュートリアル >jsonファイルが大きすぎる場合に縮小する方法
json ファイルを削減する実装方法: 1. データの構造を最適化し、ファイルに保存する必要があるデータの量を削減します。2. json を中国語でトランスコードしないようにします。3. . 圧縮アルゴリズムを使用する、現在一般的な json 圧縮アルゴリズムには、「CJSON」と「Hpack」が含まれます。
#フロントエンドがバックエンドと対話するとき、ネットワークリクエストを減らすために、変更頻度が非常に低いローカライズされたファイルが生成され、直接処理されることがよくあります。アドレス選択データなどの操作は、現在多くのプラットフォームで使用されています。
しかし、一部の少量のデータの場合、これは非常に単純なことですが、大量のデータに遭遇すると、これは明らかになります GG. 今日、私はそのようなデータに遭遇しました。フロントエンドの JSON ファイルのファイル サイズは 4.2M です。その時は顔が黒い線だらけでした。その後、データを 0.7M に減らす方法を見つけました。おそらくこれが現在の限界です。それでもやりたい場合は、小さくしておくと、構造を変更するか、フロントエンドが死につつあることに従うことしかできません。
PHP を例に「具体的な圧縮方法」について説明します
1. データの構造を最適化する
考えてください ファイル サイズを小さくするには、ファイルに保存する必要があるデータの量を減らすことを優先する必要があります。必要なのは、実現可能な最小限の構造を議論し、不要なフィールドを削除し、その中の単語やコードを減らすことです。
2. json 中国語をトランスコードさせないでください
PHP の json_encode() 関数を呼び出すと、中国語は Unicode でエンコードされます。通常の状況では、これにより、生成された JSON 文字列の可読性が考慮されますが、この特殊なケースでは、エンコードによって生じる追加の大量のオーバーヘッドは無視できません。エンコードしないと、ファイルははるかに小さくなります。
この説明には、次の関数があれば十分です。
function jsonEncode($da) { return urldecode(json_encode(arrUrlencode($da))); } function arrUrlencode($da) { if(is_array($da)){ foreach($da as $k => $v) { if(is_array($v)){ $da[$k] = arrUrlencode($v); }elseif(is_string($v) && !is_numeric($v)) { $da[$k] = urlencode($v); } } } return $da; }
3. 圧縮アルゴリズムの使用
一般的な JSON 圧縮アルゴリズムには CJSON と HPack が含まれるようになり、その原則はキーと値を分離して保存することです。重複キー値によって発生するスペース消費量。今回はCJSONアルゴリズムを使用しました。
HPack は基本的にキーの値を抽出します。抽出前と抽出後のデータの例は次のとおりです。表形式に似ています。非常に単純ではありませんか:
# 提取前[ {name: "Lam", age: 18, gender: "男", hobit: "看书"}, {name: "Lee" , age: 20, gender: "女", hobit: "跳舞"}, ]# 压缩后[ ["name", "age", "gender", "hobit"], ["Lam", 18, "男", "看书"], ["Lee", 20, "女", "跳舞"], ]
以上がjsonファイルが大きすぎる場合に縮小する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。