Maison cadre php PensezPHP Parlons de la façon d'utiliser la méthode JSON dans thinkphp5

Parlons de la façon d'utiliser la méthode JSON dans thinkphp5

Apr 07, 2023 am 09:24 AM

Avec la popularité des applications web, l'utilisation de la technologie AJAX est de plus en plus répandue. JSON (JavaScript Object Notation) est un format de données populaire pour traiter l'interaction des données front-end et back-end. Dans le framework ThinkPHP5, les opérations JSON sont très simples. Cet article explique comment utiliser la méthode JSON dans ThinkPHP5.

  1. Introduction aux opérations Json

En PHP, pour convertir un tableau en données au format JSON, il vous suffit d'utiliser la fonction json_encode.

$data = array('a' => 1, 'b' => 2, 'c' => 3);
echo json_encode($data); // {"a":1,"b":2,"c":3}
Copier après la connexion

Vous pouvez convertir les données au format JSON en tableau via la fonction json_decode :

$json_data = '{"a":1,"b":2,"c":3}';
$data = json_decode($json_data, true);
print_r($data); // Array ( [a] => 1 [b] => 2 [c] => 3 )
Copier après la connexion

Dans le framework ThinkPHP5, les opérations JSON sont plus simples. Le framework fournit une classe Json qui peut facilement traiter les données JSON. php.

  1. Utilisation de la classe Json

La classe Json hérite de la classe Response. La classe Response est une classe parent abstraite de la classe Response. Sa fonction principale est de renvoyer la réponse au client. La fonction principale de la classe Json est de renvoyer des données au client au format JSON.

Nous pouvons créer une instance Json de la manière suivante :

use think\response\Json;

$data = array('a' => 1, 'b' => 2, 'c' => 3);
$json = new Json($data);
Copier après la connexion

ou la créer de la manière suivante :

$json = json($data);
Copier après la connexion
  1. Introduction à la méthode Json

La classe Json fournit plusieurs méthodes pour traiter les données JSON. Présentons chacune d'elles ci-dessous. .

(1) méthode data

la méthode data est utilisée pour définir les données à renvoyer.

$json = new Json();
$json->data($data);
Copier après la connexion

Ou :

$json->data($data)->code(200)->header(['Cache-control' => 'no-cache,must-revalidate'])->send();
Copier après la connexion

(2) méthode content

La méthode content est utilisée pour définir le type de données à renvoyer, comme le type Content-Type d'application/json.

$json = new Json();
$json->content('application/json');
Copier après la connexion

(3) méthode jsonp

La méthode jsonp est utilisée pour générer des données JSONP. Elle accepte deux paramètres. Le premier paramètre est le nom de la fonction de rappel et le deuxième paramètre est les données à renvoyer.

$json = new Json();
$json->jsonp('callback', $data);
Copier après la connexion

(4) méthode code

la méthode code est utilisée pour définir le code d'état de la réponse, tel que 200 représentant une réponse réussie, 404 représentant que la ressource demandée n'existe pas, etc.

$json = new Json();
$json->code(200);
Copier après la connexion

(5) méthode d'en-tête

la méthode d'en-tête est utilisée pour définir les informations d'en-tête de réponse.

$json = new Json();
$json->header(['Cache-control' => 'no-cache,must-revalidate']);
Copier après la connexion

(6) méthodes d'options

la méthode d'options est utilisée pour définir les options de réponse.

$json = new Json();
$json->options(['json_encode_param' => JSON_UNESCAPED_UNICODE]);
Copier après la connexion

(7) méthode d'envoi

la méthode d'envoi est utilisée pour envoyer des données de réponse.

$json = new Json($data);
$json->send();
Copier après la connexion
  1. Exemple Json

Apprenons à utiliser la classe Json à travers un exemple. Supposons que nous ayons besoin d'une API JSON pour renvoyer une liste de produits. Chaque produit a deux attributs : ID et nom.

D'abord le code front-end :

$.ajax({
    url: '/goods/list',
    dataType: 'jsonp',
    jsonp: 'callback',
    success: function(data) {
        if (data.code == 200) {
            $.each(data.data, function(index, item) {
                $('#goods-list').append('<li>' + item.id + ': ' + item.name + '</li>');
            });
        } else {
            alert('加载商品列表失败:' + data.msg);
        }
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert('加载商品列表失败:' + textStatus);
    }
});
Copier après la connexion

Ensuite, ajoutez une fonction de liste dans le contrôleur Goods :

namespace app\index\controller;

use think\response\Json;

class Goods
{
    public function list()
    {
        // 模拟商品数据
        $goods_list = array(
            array('id' => 1, 'name' => '商品1'),
            array('id' => 2, 'name' => '商品2'),
            array('id' => 3, 'name' => '商品3'),
        );

        // 返回JSON数据
        $json = json($goods_list);
        $jsonp_callback = input('get.callback');
        if (!empty($jsonp_callback)) {
            $json->jsonp($jsonp_callback);
        }
        return $json;
    }
}
Copier après la connexion

Enfin, ajoutez une règle dans le routage :

Route::get('/goods/list', 'index/Goods/list');
Copier après la connexion

Exécutez le programme et accédez au chemin /goods/list pour voir les données JSON de retour.

Cet article présente uniquement quelques méthodes d'utilisation de base de la classe Json dans le framework ThinkPHP5. Il existe des utilisations plus avancées que les lecteurs doivent explorer par eux-mêmes. J'espère que cet article pourra fournir une référence permettant à chacun de comprendre le fonctionnement JSON du framework ThinkPHP5.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre Think Book et ThinkPad Quelle est la différence entre Think Book et ThinkPad Mar 06, 2025 pm 02:16 PM

Cet article compare les lignes d'ordinateur portable de Thinkbook et ThinkPad de Lenovo. ThinkPads priorise la durabilité et les performances des professionnels, tandis que les thinkbooks offrent une option élégante et abordable pour un usage quotidien. Les principales différences résident dans la qualité de construction, P

Comment empêcher le tutoriel d'injection SQL Comment empêcher le tutoriel d'injection SQL Mar 06, 2025 pm 02:10 PM

Cet article explique comment prévenir l'injection SQL dans les applications ThinkPHP. Il met l'accent sur l'utilisation des requêtes paramétrées via le constructeur de requête de ThinkPhp, en évitant la concaténation directe de SQL et en implémentant une validation et une désinfection d'entrée robustes. Annonce

Comment gérer la vulnérabilité ThinkPhp? Comment gérer la vulnérabilité ThinkPhp? Mar 06, 2025 pm 02:08 PM

Cet article aborde les vulnérabilités ThinkPHP, mettant l'accent sur les correctifs, la prévention et la surveillance. Il détaille la gestion des vulnérabilités spécifiques via des mises à jour, des correctifs de sécurité et une correction de code. Des mesures proactives comme la configuration sécurisée, entrée

Comment installer le logiciel développé par ThinkPhp Comment installer le tutoriel Comment installer le logiciel développé par ThinkPhp Comment installer le tutoriel Mar 06, 2025 pm 02:09 PM

Cet article détaille l'installation du logiciel ThinkPHP, couvrant des étapes telles que le téléchargement, l'extraction, la configuration de la base de données et la vérification d'autorisation. Il répond aux exigences du système (version PHP, serveur Web, base de données, extensions), installation commune

Comment réparer la vulnérabilité ThinkPHP Comment gérer la vulnérabilité ThinkPhp Comment réparer la vulnérabilité ThinkPHP Comment gérer la vulnérabilité ThinkPhp Mar 06, 2025 pm 02:04 PM

Ce didacticiel traite des vulnérabilités courantes ThinkPHP. Il met l'accent sur les mises à jour régulières, les scanners de sécurité (RIPS, Sonarqube, SNYK), l'examen du code manuel et les tests de pénétration pour l'identification et l'assainissement. Les mesures préventives comprennent une sécurisation

Étapes détaillées pour savoir comment se connecter à la base de données par ThinkPhp Étapes détaillées pour savoir comment se connecter à la base de données par ThinkPhp Mar 06, 2025 pm 02:06 PM

Ce guide détaille la connexion de la base de données dans ThinkPhp, en se concentrant sur la configuration via Database.php. Il utilise l'OPD et permet une interaction ORM ou SQL directe. Le guide couvre le dépannage des erreurs de connexion communes, gérant plusieurs connexions, en

Comment puis-je utiliser ThinkPHP pour créer des applications de ligne de commande? Comment puis-je utiliser ThinkPHP pour créer des applications de ligne de commande? Mar 12, 2025 pm 05:48 PM

Cet article montre la création d'applications de ligne de commande (CLI) en utilisant les capacités CLI de ThinkPhp. Il met l'accent sur les meilleures pratiques telles que la conception modulaire, l'injection de dépendance et la gestion des erreurs robuste, tout en mettant en évidence les pièges communs tels que INSU

Comment utiliser le tutoriel ThinkPhp Comment utiliser le tutoriel ThinkPhp Mar 06, 2025 pm 02:11 PM

Cet article présente ThinkPhp, un cadre PHP gratuit et open source. Il détaille l'architecture MVC de ThinkPhp, les fonctionnalités (routage, interaction de base de données), les avantages (développement rapide, facilité d'utilisation) et les inconvénients (surextraction potentielle, commun

See all articles