Search code examples
phpregexjsonpreg-replaceminify

Remove All Unnecessary Whitespaces from JSON String (in PHP)


How do I remove ALL unnecessary whitespaces from a JSON String (in PHP)?

I assume that I need to use preg_replace with some clever regex in order to NOT touch the whitespaces that are part of the values.

A simple example would be:

Before: '{ "key": "value with whitespaces to maintain" }'

After: '{"key":"value with whitespaces to maintain"}'

Basically, I'm looking for a way to minify and pack the string as tight as possible without changing any data.


Solution

  • Sorry to state the obvious:

    $before = '{ "key": "value with whitespaces to maintain" }';
    $after  = json_encode(json_decode($before));
    

    And it actually matches perfectly your example, see $after:

    {"key":"value with whitespaces to maintain"}