Home >Backend Development >PHP Problem >How to return JSON data format without newlines in PHP

How to return JSON data format without newlines in PHP

PHPz
PHPzOriginal
2023-03-31 10:08:451295browse

PHP is a very popular Web programming language. It has the advantages of fast development speed, simple syntax, and strong scalability, and is very popular among developers. In web development, JSON (JavaScript Object Notation) is a lightweight data exchange format used to transfer data between clients and servers. In PHP, returning JSON data format is a relatively simple task, but you may encounter some problems in actual development, such as the returned data format not meeting the requirements. This article will explore how to return JSON data format without newlines in PHP.

First, let’s take a look at the regular PHP code that returns JSON data format:

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

header('Content-Type: application/json');
echo json_encode($data);

The above code uses PHP’s built-in json_encode function to convert an associative array into JSON format. String, and set the response header through the header function, specifying that the returned data type is JSON. Finally, use the echo statement to output the JSON string.

If we run this code, we will get a JSON string as shown below:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

As you can see, there is a newline character between each key-value pair in the JSON string and an indentation. This is because the json_encode function adds a newline character and a TAB indentation character between each key-value pair by default. What should we do if we don't want newline characters and indentation characters to exist in the JSON string?

The solution is very simple. You only need to pass in the two parameters JSON_UNESCAPED_UNICODE and JSON_UNESCAPED_SLASHES when calling the json_encode function. JSON_UNESCAPED_UNICODE is used to retain Chinese characters, and JSON_UNESCAPED_SLASHES is used to avoid escaping slashes. The modified code is as follows:

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

header('Content-Type: application/json');
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

If we run this code again, we will get a JSON string as shown below:

{"name":"John","age":30,"city":"New York"}

As you can see, each key value in the JSON string There are no newlines or indents between pairs, and Chinese characters are correctly preserved. This is how to return JSON data format without newlines in PHP.

Of course, if you want newline characters and indentation characters to exist in the JSON string, you can also pass in the JSON_PRETTY_PRINT parameter when calling the json_encode function. JSON_PRETTY_PRINT is used to output a formatted JSON string with indentation and newline characters. For example:

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

header('Content-Type: application/json');
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

The output result is as follows:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

In short, for PHP developers, returning JSON data format is not only a basic operation, but also requires more attention to different parameter settings. to meet the specific needs of the project.

The above is the detailed content of How to return JSON data format without newlines in PHP. 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