Čia suprasime funkciją jsonify() „Python“ žiniatinklio sistemoje „Flask“, kuri konvertuoja funkcijos išvestį į JSON atsako objektą. Jis panašus į j son.dumps() funkcija Python standartinėje bibliotekoje, kuri konvertuoja Python objektą į JSON formatuotą eilutę.
Kas yra jsonify ()
Funkcija jsonify() yra naudinga Flask programose, nes ji automatiškai nustato teisingas atsakymo antraštes ir turinio tipą JSON atsakymams ir leidžia lengvai grąžinti JSON formatuotus duomenis iš maršruto tvarkyklių. Taip lengviau ir patogiau kurti API, kurios grąžina JSON duomenis.
Funkcijos jsonify() sintaksė
Ši funkcija priima vieną ar daugiau pozicinių argumentų, kurie nurodo duomenis, kurie turi būti konvertuojami į JSON atsako objektą, ir bet kokį raktinio žodžio argumentų skaičių, kurie naudojami JSON atsako objektui tinkinti.
jsonify(*args, **kwargs)
Jsonify() su be argumento pavyzdys
Galite naudoti jsonify() be jokių argumentų, šiuo atveju jis grąžins tuščią JSON atsakymo objektą su numatytuoju būsenos kodu 200 (OK) ir numatytuoju programos / json turinio tipu.
pabėgimo simbolis java
Python3
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()> |
>
>
fizzbuzz java
Jsonify() pavyzdys su argumentais
Šiame pavyzdyje mes iškviečiame jsonify() su vienu pozicijos argumentu (vartotojo objektų sąrašu), taip pat dviem raktinio žodžio argumentais su būsena ir mimetype. Būsenos argumentas naudojamas HTTP būsenos kodui nustatyti atsakymui, o argumentas mimetype naudojamas atsako turinio tipui nustatyti.
Python3
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'>)> |
>
surūšiuotas java masyvų sąrašas
>
jsonify() metodą „Flask“.
Šiame pavyzdyje turime „Flask“ programą su maršrutu, kuris pateikia vartotojo objektų sąrašą. Kai klientas pateikia šio maršruto užklausą, vykdoma funkcija get_users() ir vartotojo objektų sąrašas konvertuojamas į JSON atsakymo objektą naudojant funkciją jsonify(). Tada šis JSON atsakymo objektas siunčiamas atgal klientui.
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()> |
>
>
konvertuoti eilutę į sveikąjį skaičių
Išvestis:

jsonify() metodas
json.dumps() metodą Flask
Priešingai, jei naudotumėte json.dumps() funkciją, jums reikės patiems konvertuoti vartotojo objektų sąrašą į JSON formatuotą eilutę, tada nustatyti atitinkamas atsakymo antraštes ir rankiniu būdu grąžinti atsakymą klientui:
Naudoti jsonify() paprastai yra lengviau ir patogiau nei naudoti json.dumps(), todėl rekomenduojama naudoti jsonify(), kai tik įmanoma Flask programose.
Python3
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()> |
>
>
Išvestis:
http://127.0.0.1:5000/api/users
pridėti prie masyvo java
Kodėl verta naudoti jsonify() vietoj json.dumps()
Yra keletas priežasčių, kodėl Flask programose rekomenduojama naudoti funkciją jsonify() vietoj funkcijos json.dumps():
- Jsonify() yra patogesnis ir lengviau naudojamas nei json.dumps(). jsonify() turi paprastą ir intuityvią sintaksę ir automatiškai tvarko duomenis apie duomenų konvertavimą į JSON atsako objektą ir grąžinimą klientui. Priešingai, json.dumps() reikalauja, kad šią informaciją tvarkytumėte patys, o tai gali užtrukti daugiau laiko ir sukelti klaidų.
- jsonify() automatiškai nustato teisingas atsakymo antraštes ir turinio tipą JSON atsakymams, o json.dumps() ne. Tai reiškia, kad jums nereikia rankiniu būdu nustatyti turinio tipo antraštės į application/json, kai naudojate jsonify (), bet turėsite tai padaryti rankiniu būdu, kai naudojate json.dumps ().
- jsonify() leidžia lengvai grąžinti JSON formatuotus duomenis iš maršruto tvarkyklių, o json.dumps() – ne. Naudodami jsonify(), galite tiesiog grąžinti duomenis, kuriuos norite konvertuoti į JSON atsako objektą iš maršruto tvarkyklės, o jsonify() pasirūpins visa kita. Naudodami json.dumps(), turėsite patys konvertuoti duomenis į JSON formato eilutę ir grąžinti juos kaip atsako objekto dalį.
- Apskritai, naudojant jsonify() vietoj json.dumps() Flask programose gali būti lengviau ir patogiau kurti API, kurios grąžina JSON duomenis. Tai leidžia sutelkti dėmesį į programos duomenis ir logiką, o ne nerimauti dėl formatavimo ir JSON atsakymų grąžinimo informacijos.