Home  >  Article  >  Backend Development  >  How to convert PHP array to JSON object array

How to convert PHP array to JSON object array

PHPz
PHPzOriginal
2023-04-19 09:20:06456browse

Converting an array to a JSON object array or object array in PHP is a task that often needs to be completed. This article explains how to implement this functionality through sample code.

Convert PHP array to JSON object array

First, we need to define a PHP array that contains multiple associative arrays. An example is as follows:

$data = array(
    array(
        'name' => 'John',
        'age' => 30
    ),
    array(
        'name' => 'Mary',
        'age' => 25
    ),
    array(
        'name' => 'Peter',
        'age' => 35
    )
);

Next, we can use the PHP built-in function json_encode() to convert this PHP array into a JSON object array. The example is as follows:

$json_data = json_encode($data);

With the above code, we convert the PHP array $data into the JSON object array $json_data. The conversion result is as follows:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

Convert a PHP array to an object array containing methods in a JSON object array

In some cases, we need to convert a PHP array to a JSON object array, where each An object contains methods in addition to properties. To achieve this functionality, we can use anonymous classes in PHP. An example is as follows:

$data = array(
    new class('John', 30) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Mary', 25) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Peter', 35) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    }
);

In the above code, we define a PHP array $data, each element of which is an instance of an anonymous class. The anonymous class contains the $name and $age properties and the sayHello() method. Next, we can convert the PHP array $data into a JSON object array through the json_encode() function.

$json_data = json_encode($data);

The conversion results are as follows:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

The sayHello() method is not included in the above results, because when converting a PHP object to a JSON object, only attributes will be included, not methods. .

Convert PHP array to an array of objects containing methods in a JSON object array

In some cases, we need to convert a PHP array to an array of JSON objects, in which each object except the attributes Also includes methods. In order to achieve this function, we can use class inheritance. An example is as follows:

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function sayHello() {
        echo 'Hello, my name is ' . $this->name;
    }
}

class John extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am John';
    }
}

class Mary extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Mary';
    }
}

class Peter extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Peter';
    }
}

$data = array(
    new John('John', 30),
    new Mary('Mary', 25),
    new Peter('Peter', 35)
);

$json_data = json_encode($data);

In the above code, we define the class Person and its three subclasses John, Mary and Peter. These three subclasses all inherit from the Person class and override the sayHello() method. Next, we define a PHP array $data, which contains instances of John, Mary, and Peter. Finally, we convert the PHP array $data into an array of JSON objects by calling the json_encode() function.

The conversion result is as follows:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

Same as the previous example, the above result does not include the sayHello() method. If you need to include methods in a JSON object array, you need to convert these methods as attributes.

Summary

This article explains how to convert an array to a JSON object array or object array in PHP, and includes some examples of special cases, such as: if the objects in the array contain methods, How to make the conversion. Hope these examples are helpful to your work or study.

The above is the detailed content of How to convert PHP array to JSON object array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn