如何从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);`