Как убрать одинарные кавычки из значения json - PullRequest
0 голосов
/ 08 ноября 2019

Json из API возвращает специальные символы, и я хочу удалить их, так как это вызывает проблемы

Это часть 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) "
    }

как видите, в этом значении есть дополнительные символы, которые я не знаю, как удалить

1 Ответ

0 голосов
/ 08 ноября 2019

Прежде всего вы должны заставить источник 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. Однако, если у вас есть более специальные знаки, вы можете рассмотреть более продвинутую функцию удаления символов.

...