Обработка данных ДО того, как они закодированы в формате JSON. Лучше очистить исходный код, чем связываться с версией JSON и, возможно, нарушить синтаксис с помощью искаженного регулярного выражения, удалив то, чего не должно быть.
В основном, сделайте это:
foreach($data as $key => $value) {
$data[$key] = trim($value);
}
$json = json_encode($data); // $json's values are now pre/post-whitespace free
(при условии, что это простой одномерный массив).
редактирование / комментирование:
Ваш PHP-скрипт извлекает этот внешний JSON? Если это так, то вы можете тривиально декодировать JSON в объект / массив PHP, выполнять обрезку пробелов и повторно кодировать в JSON:
$json = get_json_from_external_source();
$data = json_decode($json);
и затем цикл foreach (или array_map, как упомянуто в комментарии Томалака), как и раньше. Если вы ограничены выполнением этой клиентской части в Javascript, то вы можете выполнить там эквивалентную обработку, прежде чем передавать данные в любую функцию, которая этого требует.
правка / комментарий №2:
Я очень сомневаюсь, что это конечные пробелы внутри значений данных JSON. JSON прекрасно способен обрабатывать пробелы, где бы они ни находились внутри строки, и не заботится о том, сколько (или мало) их есть. Скорее всего, это забавные символы в записи GlossTerm
.
Если вы используете PHP 5.3 (или более позднюю бета-версию), есть json_last_error()
, который сообщит о причине сбоя декодирования.