从JSON字符串中删除所有不必要的空白(PHP)


Remove All Unnecessary Whitespaces from JSON String (in PHP)

如何从JSON字符串(PHP)中删除所有不必要的空白?

我假设我需要使用preg_replace和一些聪明的regex,以便不触及作为值一部分的空白。

一个简单的例子是:

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

: "{"关键":与空白值,保持"}"

基本上,我正在寻找一种方法来缩小和包装字符串尽可能紧密,而不改变任何数据

很抱歉这么说:

$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" }'
);

受:Regex启发,匹配引号内的所有实例

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);`