📜  在 php 中从 json 中删除空格和行(1)

📅  最后修改于: 2023-12-03 15:07:45.499000             🧑  作者: Mango

在 PHP 中从 JSON 中删除空格和行

有时候我们从外部获取到的 JSON 数据中可能包含有空格和换行符,这些字符会干扰我们在 PHP 中解析 JSON 数据。为了确保我们能够准确地解析 JSON 数据,我们需要从 JSON 中删除这些空格和换行符。

方法一:使用 preg_replace 函数删除空格和行

我们可以使用 preg_replace 函数来删除 JSON 中的空格和换行符。下面是一段示例代码:

$json = '{
  "name": "John Smith",
  "age": 32,
  "address": {
    "street": "123 Main St.",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  }
}';
$json = preg_replace('/\s+/', '', $json);
$data = json_decode($json);
print_r($data);

在上面的代码中,我们使用 preg_replace 函数和正则表达式 \s+ 来匹配 JSON 中的所有空格和换行符,并将它们替换为空字符串。接着我们将处理后的 JSON 数据解码为 PHP 数组并打印出来。

方法二:使用 JSON_UNESCAPED_UNICODE 选项解码 JSON

另一种处理 JSON 中的空格和行的方法是在解码 JSON 时使用 JSON_UNESCAPED_UNICODE 选项。这个选项会让 PHP 在解码 JSON 时不转义 Unicode 字符。由于空格和换行符所对应的 Unicode 字符是不可打印字符,因此在使用 JSON_UNESCAPED_UNICODE 选项时这些字符会被忽略。下面是一段示例代码:

$json = '{
  "name": "John Smith",
  "age": 32,
  "address": {
    "street": "123 Main St.",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  }
}';
$data = json_decode($json, true, 512, JSON_UNESCAPED_UNICODE);
print_r($data);

在上面的代码中,我们在使用 json_decode 函数解码 JSON 数据时传入了 JSON_UNESCAPED_UNICODE 选项。接着我们将解码后的 PHP 数组打印出来。

结论

无论是使用 preg_replace 函数还是 JSON_UNESCAPED_UNICODE 选项,我们都可以轻松地从 JSON 中删除空格和换行符。这样可以确保我们能够准确地解析 JSON 数据。