rfc:json_encode_indentation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
rfc:json_encode_indentation [2021/06/03 13:49] – created tdgrootrfc:json_encode_indentation [2022/07/19 15:23] (current) – Closed vote cmb
Line 3: Line 3:
   * Date: 2021-06-03   * Date: 2021-06-03
   * Author: Timon de Groot, tdegroot96@gmail.com   * Author: Timon de Groot, tdegroot96@gmail.com
-  * StatusDraft +  * Implementationhttps://github.com/php/php-src/pull/7093 
 +  * Status: Declined
  
 ===== Introduction ===== ===== Introduction =====
Line 10: Line 10:
  
 ===== Proposal ===== ===== Proposal =====
-Introducing a 4th parameter, called //indent//. The type of the parameter is string|int and its default value is 4.+Introducing a 4th parameter, called //indent//. The type of the parameter is int and its default value is 4.
  
-When a string is passedthat character sequence will be used for indentation, where it normally would be '    ' (4 spaces). Users passing a string must be aware that usage of invalid JSON characters in the indentation value will natually cause invalid formatted JSON data.+By defaultan indentation of 4 spaces will be applied, just like the original //json_encode// behaviour with the //JSON_PRETTY_PRINT// option
  
-When an int is passed, an indentation of N spaces will be applied.+When the //indent// parameter is passed a different value, an indentation of N spaces will be applied.
  
 <code php> <code php>
 $data = [ $data = [
     'key' => 4,     'key' => 4,
-    'other_key' => [0, 1, 2, 3]+    'other_key' => [2]
 ]; ];
  
-echo json_encode($data, JSON_PRETTY_PRINT, 512, 2);+echo json_encode(['behavior' => 'default'], JSON_PRETTY_PRINT) . PHP_EOL; 
 +echo json_encode($data, JSON_PRETTY_PRINT, 512, 2) . PHP_EOL;
  
 ?> ?>
 </code> </code>
  
-<code>+<code json> 
 +
 +    "behavior": "default" 
 +}
 { {
   "key": 4,   "key": 4,
   "other_key": [   "other_key": [
-    0, +    2
-    1, +
-    2+
-    3+
   ]   ]
 } }
Line 50: Line 51:
 ===== Patches and Tests ===== ===== Patches and Tests =====
 Tests are written with the RFC Tests are written with the RFC
 +
 +===== Vote =====
 +
 +Voting opened on 2022-07-04 and closes on 2022-07-18.
 +
 +<doodle title="Add support for changing the JSON indentation amount?" auth="tdgroot" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
 +
rfc/json_encode_indentation.1622728144.txt.gz · Last modified: 2021/06/03 13:49 by tdgroot