[英]How to remove single quotations from json value
來自 api 的 Json 返回特殊字符,我想刪除它們,因為它會導致問題
這是json的一部分;
[
{
"id": "email",
"value": "Email\b\b\b\b\b\b\b\b"
},
{
"id": "email",
"value": "xxx@email.com\f\f\f\f\f\f\f\f\f\f\f\f"
},
{
"id": "email",
"value": "xxx@email.com\u0001"
}
]
我只想要電子郵件而不是反斜杠后的字符
我試過trim() 和preg_match。
$maps_json = file_get_contents('ats.json');
$maps_array = json_decode($maps_json);
var_dump(str_split($maps_array[0]->value));
以上返回此,我想刪除電子郵件地址后的所有其他字符。
array(13) {
[0]=>
string(1) "E"
[1]=>
string(1) "m"
[2]=>
string(1) "a"
[3]=>
string(1) "i"
[4]=>
string(1) "l"
[5]=>
string(1) "
[6]=>
string(1) "
[7]=>
string(1) "
[8]=>
string(1) "
[9]=>
string(1) "
[10]=>
string(1) "
[11]=>
string(1) "
[12]=>
string(1) "
}
正如你所看到的,這個值有額外的字符,我不知道如何刪除
首先,您應該強制 json 源不為您提供反斜杠符號,但是如果您不能這樣做,請嘗試以下操作:
$json= str_replace(["\b","\f"], "", $json);
$maps_array = (json_decode($json));
var_dump(str_split($maps_array[0]->value));
輸出:
array(5) {
[0]=>
string(1) "E"
[1]=>
string(1) "m"
[2]=>
string(1) "a"
[3]=>
string(1) "i"
[4]=>
string(1) "l"
}
使用 str_replace 刪除反斜杠符號。 但是,如果您有更多特殊符號\\r\\n\\t,您可以考慮更高級的字符刪除功能。
您需要先對其進行解碼,然后使用preg_replace()
從子數組value
索引中刪除不需要的值
$maps_array = json_decode($maps_json,true);
foreach($maps_array as &$map){
$map['value'] = preg_replace("/[^a-zA-Z0-9]/", "", $map['value']);
}
print_r($maps_array);
輸出: -https : //3v4l.org/9I69P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.