Удалить все ненужные пробелы из строки JSON (в PHP)

Как удалить ВСЕ ненужные пробелы из строки JSON (в PHP)?

Я предполагаю, что мне нужно использовать preg_replace с некоторым умным регулярным выражением, чтобы НЕ касаться пробелов, которые являются частью значений.

Простой пример:

Перед: '{"ключ": "значение с пробелами для поддержания"}'

После: '{"ключ": "значение с пробелами для поддержания"}'

В принципе, я ищу способ минимизировать и упаковать строку как можно труднее, не изменяя никаких данных.

Извините за это:

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

И это на самом деле идеально соответствует вашему примеру, см. $after :

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

Решение PHP preg_:

 preg_replace('/\s(?=([^"]*"[^"]*")*[^"]*$)/', '', '{ "key": "value a with whitespaces to maintain" }'); 

Вдохновленный: Альтернатива регулярному выражению: соответствие всем экземплярам, ​​не входящим в кавычки

PHP =>

Синтаксис: ltrim(string,charlist)

Пример :

 `$str = '{ "name" : " Test Subject" }';` `$obj = json_decode($str);` `$obj->name = ltrim($obj->name);` `var_dump($obj);` 

JS / jQuery =>

Синтаксис: jQuery.trim( str )

Пример :

 `var obj={ "name" : " Test Subject" };` `console.log(obj);` `obj["name"]=obj.name.trim(); // OR // obj.name.replace(/^\s+/,"");` `console.log(obj);`