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.
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"}
A PHP preg_ solution:
preg_replace(
'/\s(?=([^"]*"[^"]*")*[^"]*$)/', ''
, '{ "key": "value a with whitespaces to maintain" }'
);
Inspired by: Regex to match all instances not inside quotes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With