エンコーディングフラグ

 デフォルトでは、オブジェクトと配列のみを直接エンコードできます。これは、これらがJSONテキストの唯一の有効なルート値であるためです。JSON値をエンコードするには、JSON_ENCODE_ANYフラグを使用します。

 デフォルトでは、出力には改行がなく、読み取り可能な出力のために配列要素とオブジェクト要素の間にスペースが使用されます。この動作は、以下で説明するJSON_INDENTおよびJSON_COMPACTフラグを使用して変更できます。エンコードされたJSONデータの最後に改行が追加されることはありません。

 データのエンコード方法のいくつかの側面を制御するフラグパラメーターを取ります。デフォルト値は0です。次のマクロをOR演算して、フラグを取得できます。

  • JSON_INDENT(n)
  • 配列アイテムとオブジェクトアイテムの間に改行を使用し、n個のスペースでインデントして、結果をきれいにプリントします。nの有効な範囲は0〜31(両端を含む)で、他の値は未定義の出力になります。JSON_INDENT使用されていない、もしくはNが 0の場合、いかなる改行は、アレイと対象アイテムとの間に挿入されていません。

    JSON_MAX_INDENT定数を使用することができる最大のインデントを定義し、その値は31です。

  • JSON_COMPACT
  • このフラグにより​​、コンパクトな表現が可能になります。つまり、配列とオブジェクトアイテムの","間、およびオブジェクトキーと値の間の区切り文字がに設定されます":"。このフラグがない場合、対応するセパレータである","と":"で、より読みやすい出力になります。

  • JSON_ENCODE_ANY
  • このフラグを指定すると、任意のJSON値を独自にエンコードできます。これがないと、オブジェクトと配列のみをjson値としてエンコード関数に渡すことができます 。

参考

 その他エンコーディングフラグの詳細は下記を参照ください。


最終更新日:2022/01/26