在现代web开发中,基于javascript的前端程序使用json(javascript object notation)格式数据已成为常规选择。而 php 则是一种常见的服务器端编程语言。常常我们需要在服务器端将php对象或数组转化为json格式字符串,以方便前端调用。在本文中,将介绍如何在 php 中将对象数组转化为 json 字符串数组。
PHP中内置了json_encode()函数,该函数可以将 PHP 的数组和对象转化为 JSON 格式字符串,如下所示:
<?php
$array = array('name' => '张三', 'age' => 18, 'gender' => 'male');
echo json_encode($array);
?>运行结果:
{"name":"张三","age":18,"gender":"male"}在这个例子中我们可以看到,当将PHP数组传入json_encode()函数时能够返回一个已编码的JSON格式字符串。这里需要注意:json_encode()函数只支持UTF-8编码格式,如果你的字符串所使用的编码格式不是UTF-8则会出现错误。因此,在使用json_encode()函数之前,请确保需要转换的数组或对象已经转换为 UTF-8 格式。
如果需要将对象数组转化为 JSON 字符串数组,则需要将对象转化为数组,并使用json_encode()函数进行处理。举例来说,我们需要将表示学生信息的对象数组转化为 JSON 格式字符串数组:
立即学习“PHP免费学习笔记(深入)”;
<?php
class Student{
public $name;
public $age;
public $gender;
}
$student1 = new Student();
$student1->name = '张三';
$student1->age = 18;
$student1->gender = 'male';
$student2 = new Student();
$student2->name = '李四';
$student2->age = 19;
$student2->gender = 'female';
$students = array();
array_push($students,$student1,$student2);
$students_arr = array();
foreach($students as $student){
$obj = get_object_vars($student);
array_push($students_arr,$obj);
}
echo json_encode($students_arr);
?>运行结果:
[{"name":"张三","age":18,"gender":"male"},{"name":"李四","age":19,"gender":"female"}]在上面的示例中,我们创建了一个可以表示学生信息的 Student 类,并用数组存储多个Student 对象。在将 Student 对象转化为数组时,使用了 get_object_vars() 函数。该函数可以将对象转换为一个关联数组,使我们可以像处理数组一样处理对象。最后将数组传给json_encode()函数,将结果输出即可。
同时,为了更好的辅助理解,我们也可以将上述示例转化为更直观的形式,如下图所示:

通过上面的两个例子,您已经了解到了如何将PHP对象或数组转化为JSON格式字符串数组。但是,乍一看这些JSON格式字符串数组看起来有些难以阅读。为了美化 JSON 数据格式,你可以使用json_encode()函数的第二个参数:JSON_PRETTY_PRINT选择,如下所示:
<?php
$array = array('name' => '张三', 'age' => 18, 'gender' => 'male');
echo json_encode($array,JSON_PRETTY_PRINT);
?>运行结果:
{
"name": "张三",
"age": 18,
"gender": "male"
}这就是使用JSON_PRETTY_PRINT选项后的输出结果,更清晰易读。
在这篇文章中,我们介绍了如何在 PHP 中将对象数组转化为 JSON 字符串数组。这是我们进行前后端交互的重要一步,再结合前端的 JSON 解析工具,能够轻易地将数据转化为各个网站所需要的格式。
以上就是php对象数组怎么转化为json字符串数组的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号