Tu porozumieme funkcii jsonify() vo webovom rámci Flask pre Python, ktorá konvertuje výstup funkcie na objekt odpovede JSON. Je to podobné ako j son.dumps() funkciu v štandardnej knižnici Pythonu, ktorá konvertuje objekt Python na reťazec vo formáte JSON.
čo je jsonify()
Funkcia jsonify() je užitočná v aplikáciách Flask, pretože automaticky nastavuje správne hlavičky odpovedí a typ obsahu pre odpovede JSON a umožňuje vám jednoducho vrátiť údaje vo formáte JSON z vašich obslužných nástrojov smerovania. Vďaka tomu je vytváranie rozhraní API, ktoré vracajú údaje JSON, jednoduchšie a pohodlnejšie.
Syntax funkcie jsonify().
Táto funkcia obsahuje jeden alebo viacero pozičných argumentov, ktoré predstavujú údaje, ktoré sa majú skonvertovať na objekt odpovede JSON, a ľubovoľný počet argumentov kľúčových slov, ktoré sa používajú na prispôsobenie objektu odpovede JSON.
jsonify(*args, **kwargs)
Príklad jsonify() s bez argumentu
Môžete použiť jsonify() bez akýchkoľvek argumentov, v tomto prípade vráti prázdny objekt odpovede JSON s predvoleným stavovým kódom 200 (OK) a predvoleným typom obsahu application/json.
Python3
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()> |
>
>
Príklad jsonify() s argumentmi
V tomto príklade voláme jsonify() s jedným pozičným argumentom (zoznam objektov používateľa), ako aj s dvomi argumentmi kľúčového slova so stavom a mimetype. Argument status sa používa na nastavenie kódu stavu HTTP pre odpoveď a argument mimetype sa používa na nastavenie typu obsahu pre odpoveď.
Python3
kruskalov algoritmus
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'Alice'>}, {>'id'>:>2>,>'username'>:>'Bob'>}]> >return> jsonify(users, status>=>200>, mimetype>=>'application/json'>)> |
>
>
metóda jsonify() vo Flasku
V tomto príklade máme aplikáciu Flask s cestou, ktorá vracia zoznam objektov používateľa. Keď klient zadá požiadavku na túto cestu, vykoná sa funkcia get_users() a zoznam užívateľských objektov sa skonvertuje na objekt odpovede JSON pomocou funkcie jsonify(). Tento objekt odpovede JSON sa potom odošle späť klientovi.
Python3
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/'>)> def> get_users():> >print>(>'Using jsonify'>)> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pallavi'>}]> >return> jsonify({>'users'>: users})> if> __name__>=>=> '__main__'>:> >app.run()> |
>
>
Výkon:

metóda jsonify().
metóda json.dumps() vo Flasku
Na rozdiel od toho, ak by ste použili json.dumps() budete musieť sami previesť zoznam užívateľských objektov na reťazec vo formáte JSON a potom nastaviť príslušné hlavičky odpovede a vrátiť odpoveď klientovi manuálne:
Používanie jsonify() je vo všeobecnosti jednoduchšie a pohodlnejšie ako používanie json.dumps(), preto sa odporúča používať jsonify() vždy, keď je to možné v aplikáciách Flask.
Python3
ctc úplná forma
from> flask>import> Flask, Response> import> json> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pandey'>}]> >response>=> Response(> >response>=>json.dumps(users),> >status>=>200>,> >mimetype>=>'application/json'> >)> >return> response> if> __name__>=>=> '__main__'>:> >app.run()> |
>
>
Výkon:
http://127.0.0.1:5000/api/users
Prečo používať jsonify() namiesto json.dumps()
Existuje niekoľko dôvodov, prečo sa v aplikáciách Flask odporúča použiť funkciu jsonify() namiesto funkcie json.dumps():
- jsonify() je pohodlnejšie a jednoduchšie na použitie ako json.dumps(). jsonify() má jednoduchú a intuitívnu syntax a automaticky spracováva podrobnosti o konverzii vašich údajov na objekt odpovede JSON a ich vrátení klientovi. Na rozdiel od toho json.dumps() vyžaduje, aby ste tieto detaily zvládli sami, čo môže byť časovo náročnejšie a náchylnejšie na chyby.
- Funkcia jsonify() automaticky nastavuje správne hlavičky odpovedí a typ obsahu pre odpovede JSON, zatiaľ čo json.dumps() nie. To znamená, že pri použití jsonify() nemusíte manuálne nastaviť hlavičku Content-Type na application/json, ale pri použití json.dumps() by ste to museli urobiť manuálne.
- jsonify() vám umožňuje jednoducho vrátiť údaje vo formáte JSON z vašich obslužných programov smerovania, zatiaľ čo json.dumps() nie. Pomocou jsonify() môžete jednoducho vrátiť údaje, ktoré chcete previesť na objekt odpovede JSON z vášho obslužného programu trasy, a jsonify() sa postará o zvyšok. Pomocou json.dumps() by ste museli sami previesť údaje na reťazec vo formáte JSON a potom ich vrátiť ako súčasť objektu Response.
- Celkovo môže používanie jsonify() namiesto json.dumps() v aplikáciách Flask zjednodušiť a zjednodušiť vytváranie rozhraní API, ktoré vracajú údaje JSON. Umožňuje vám to zamerať sa na údaje a logiku vašej aplikácie a nemusíte sa starať o podrobnosti formátovania a vracania odpovedí JSON.