📜  php json_encode - PHP (1)

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

PHP中的json_encode

在Web开发中,前后端数据传输是非常常见的场景。而JSON就是一种轻量级的数据交互格式,被广泛应用在前后端的数据传输中。而PHP提供了一个内置函数json_encode来帮助我们将PHP变量转化为JSON格式字符串,方便前后端数据传输。

语法

json_encode(mixed $value, int $options = 0, int $depth = 512) : string

该函数接收三个参数:

  • mixed $value:表示要编码的PHP变量。
  • int $options:表示编码时的选项。可选参数,如果不传递该参数,则默认为0。
  • int $depth:表示编码深度。可选参数,如果不传递该参数,则默认为512。
返回值

该函数返回编码后的JSON格式字符串,如果出现错误,则返回false。

使用方法
//PHP数组
$data = array(
    'name' => '张三',
    'age' => 18,
    'email' => 'zhangsan@qq.com',
);

//将PHP数组转化为JSON格式字符串
$json_data = json_encode($data);

echo $json_data;

输出结果如下:

{
    "name": "张三",
    "age": 18,
    "email": "zhangsan@qq.com"
}
选项参数

json_encode函数还提供了丰富的选项参数,可以让我们更加灵活地控制编码的结果。

JSON_PRETTY_PRINT

该选项参数可以让编码后的结果格式化输出,易于阅读。

//PHP数组
$data = array(
    'name' => '张三',
    'age' => 18,
    'email' => 'zhangsan@qq.com',
);

//将PHP数组转化为JSON格式字符串,并进行格式化输出
$json_data = json_encode($data, JSON_PRETTY_PRINT);

echo $json_data;

输出结果如下:

{
    "name": "张三",
    "age": 18,
    "email": "zhangsan@qq.com"
}
JSON_UNESCAPED_UNICODE

该选项参数可以让编码后的结果中的中文字符不进行Unicode编码,保持原样输出。

//PHP数组
$data = array(
    'name' => '张三',
    'age' => 18,
    'email' => 'zhangsan@qq.com',
);

//将PHP数组转化为JSON格式字符串,并保持中文字符原样输出
$json_data = json_encode($data, JSON_UNESCAPED_UNICODE);

echo $json_data;

输出结果如下:

{
    "name": "张三",
    "age": 18,
    "email": "zhangsan@qq.com"
}
JSON_NUMERIC_CHECK

该选项参数可以让编码后的结果中的数值类型强制转化为数值类型,而不是字符串类型。

//PHP数组
$data = array(
    'name' => '张三',
    'age' => 18,
    'weight' => '55.5kg',
);

//将PHP数组转化为JSON格式字符串,并强制转化数值类型
$json_data = json_encode($data, JSON_NUMERIC_CHECK);

echo $json_data;

输出结果如下:

{
    "name": "张三",
    "age": 18,
    "weight": 55.5
}
总结

json_encode函数是PHP中非常有用的一个函数,用来将PHP变量转化为JSON格式字符串,方便前后端数据传输。而且该函数提供了丰富的选项参数,可以让我们更好地控制编码后的结果。