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

php regex json preg-replace minify

10253 просмотра

3 ответа

71 Репутация автора

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

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

Простой пример будет:

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

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

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

Автор: Geek Girl x0x0 Источник Размещён: 25.05.2014 08:35

Ответы (3)


21 плюса

165020 Репутация автора

Извините за очевидное:

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

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

{"key":"value with whitespaces to maintain"}
Автор: hakre Размещён: 25.05.2014 08:46

2 плюса

7780 Репутация автора

PHP preg_ решение:

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

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

Автор: bloodyKnuckles Размещён: 25.05.2014 09:34

0 плюса

1 Репутация автора

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);`
Автор: AppCloudData Размещён: 26.01.2017 11:18
Вопросы из категории :
32x32