{"id":162,"date":"2026-10-02T14:33:02","date_gmt":"2026-10-02T14:33:02","guid":{"rendered":"https:\/\/www.elixlab.it\/wps\/?p=162"},"modified":"2026-10-03T13:46:02","modified_gmt":"2026-10-03T13:46:02","slug":"json-formatter","status":"publish","type":"post","link":"https:\/\/www.elixlab.it\/wps\/blog\/2026\/10\/02\/json-formatter\/","title":{"rendered":"Guida al formato JSON: cos&#8217;\u00e8 e come validarlo nelle API moderne"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"162\" class=\"elementor elementor-162\">\n\t\t\t\t<div class=\"elementor-element elementor-element-430611f e-flex e-con-boxed e-con e-parent\" data-id=\"430611f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c4d623 elementor-widget elementor-widget-heading\" data-id=\"4c4d623\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Guida al formato JSON: cos'\u00e8 e come validarlo nelle API moderne<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-76769c52 e-flex e-con-boxed e-con e-parent\" data-id=\"76769c52\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ccee766 elementor-widget elementor-widget-text-editor\" data-id=\"6ccee766\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Il formato <strong>JSON (JavaScript Object Notation)<\/strong> \u00e8 diventato lo standard de facto per lo scambio di dati nel web moderno. Leggero, indipendente dal linguaggio di programmazione e intuitivo sia per gli sviluppatori che per le macchine, JSON alimenta la stragrande maggioranza delle API RESTful odierne. Tuttavia, ricevere dati strutturati non basta: garantire la loro correttezza e integrit\u00e0 tramite una validazione rigorosa \u00e8 fondamentale per la sicurezza e la stabilit\u00e0 delle applicazioni.<\/p>\n<p><\/p>\n<p><!-- \/wp:paragraph --><!-- wp:heading --><\/p>\n<h3 class=\"wp-block-heading\">1. Cos&#8217;\u00e8 JSON e perch\u00e9 \u00e8 fondamentale<\/h3>\n<p><!-- \/wp:heading --><!-- wp:paragraph --><\/p>\n<p>Nato come sottoinsieme di JavaScript, JSON \u00e8 oggi un formato universale supportato da qualsiasi stack tecnologico (Python, Java, Go, PHP, ecc.). I suoi punti di forza principali includono:<\/p>\n<p><!-- \/wp:paragraph --><!-- wp:list --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\"><!-- wp:list-item --><\/ul>\n<\/li>\n<\/ul>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Leggerezza<\/strong>: una sintassi minimale priva della verbosit\u00e0 tipica di XML.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Indipendenza<\/strong>: pu\u00f2 essere generato e interpretato da qualsiasi linguaggio moderno.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Gerarchia<\/strong>: permette di rappresentare strutture di dati complesse e nidificate.<\/li>\n<li>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><!-- wp:heading --><\/p>\n<h3 class=\"wp-block-heading\">2. Struttura di base di un documento JSON<\/h3>\n<p><!-- \/wp:heading --><!-- wp:paragraph --><\/p>\n<p>Un file JSON si basa principalmente su due costrutti fondamentali:<\/p><p><br><\/p>\n<p><!-- \/wp:paragraph --><!-- wp:list --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\"><!-- wp:list-item --><\/ul>\n<\/li>\n<\/ul>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<\/li><ul class=\"wp-block-list\">\n<li><strong>Oggetti<\/strong>: racchiusi tra parentesi graffe <code>{ }<\/code>, contengono coppie chiave-valore separate da virgole (le chiavi devono essere stringhe).<\/li>\n<\/ul>\n\n<\/ul><div><font color=\"#cbd5e1\"><br><\/font><font color=\"#cbd5e1\"><br><\/font><\/div>\n<p><!-- \/wp:list-item --><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Array<\/strong>: racchiusi tra parentesi quadre <code>[ ]<\/code>, rappresentano elenchi ordinati di valori (oggetti, stringhe, numeri o booleani).<\/li>\n<li>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><!-- wp:paragraph --><\/p>\n<p>Esempio pratico di payload API:<\/p>\n<p><\/p>\n<p><!-- \/wp:paragraph --><!-- wp:html --><\/p>\n<pre style=\"background-color: #0f172a; color: #34d399; border: 1px solid #334155; border-radius: 0.75rem; padding: 1rem; font-family: monospace;\">JSON\n\n{\n    \"nome\": \"ElixLab\",\n    \"attivo\": true,\n    \"ruoli\": [\"admin\", \"utente\"]\n}\n<\/pre>\n<p><!-- \/wp:html --><!-- wp:heading --><\/p>\n<h2 class=\"wp-block-heading\">&nbsp;<\/h2>\n<h2 class=\"wp-block-heading\">3. Come validare il JSON nelle API moderne<\/h2>\n<p><!-- \/wp:heading --><!-- wp:paragraph --><\/p>\n<p>Nelle API moderne, la validazione non si limita a controllare che la sintassi sia formalmente corretta (parsing), ma verifica che i dati rispettino le regole di business e i tipi attesi. Lo standard industriale per questo scopo \u00e8 <strong>JSON Schema<\/strong>.<\/p>\n<p><\/p>\n<p><!-- \/wp:paragraph --><!-- wp:list --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\"><!-- wp:list-item --><\/ul>\n<\/li>\n<\/ul>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>JSON Schema<\/strong>: un vocabolario basato su JSON che permette di dichiarare la struttura attesa, specificando tipi di dati, campi obbligatori, pattern regex e vincoli numerici.<\/li>\n<li>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Validazione lato server<\/strong>:<\/li>\n<li><!-- wp:list --><br><ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\"><!-- wp:list-item --><\/ul>\n<\/li>\n<\/ul>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Node.js<\/strong>: <code>Ajv<\/code> \u00e8 la libreria pi\u00f9 diffusa, performante e conforme alle specifiche JSON Schema.<\/li>\n<li>&nbsp;<\/li>\n<li>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Python<\/strong>: <code>jsonschema<\/code> offre un supporto nativo e completo per validare i dizionari Python contro uno schema.<\/li>\n<li>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li><strong>Framework moderni<\/strong>: Molti framework (come FastAPI o NestJS) integrano la validazione automatica (tramite Pydantic o class-validator) direttamente nei punti di ingresso dell&#8217;API.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><!-- wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-25eb23f e-flex e-con-boxed e-con e-parent\" data-id=\"25eb23f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6a6c2f2 elementor-widget elementor-widget-html\" data-id=\"6a6c2f2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n    \/* Colore chiaro per tutto il testo del blog e blocchi di codice coordinati *\/\r\n    body, .site-content, .post-content, p, li, span {\r\n        color: #cbd5e1 !important;\r\n    }\r\n    h1, h2, h3, h4, h5, h6 {\r\n        color: #ffffff !important;\r\n    }\r\n    pre, code {\r\n        background-color: #0f172a !important;\r\n        color: #34d399 !important;\r\n        border: 1px solid #334155 !important;\r\n        border-radius: 0.75rem !important;\r\n        padding: 1rem !important;\r\n        font-family: monospace !important;\r\n    }\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Guida al formato JSON: cos&#8217;\u00e8 e come validarlo nelle API moderne Il formato JSON (JavaScript Object Notation) \u00e8 diventato lo standard de facto per lo scambio di dati nel web moderno. Leggero, indipendente dal linguaggio di programmazione e intuitivo sia per gli sviluppatori che per le macchine, JSON alimenta la stragrande maggioranza delle API RESTful [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-162","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/posts\/162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/comments?post=162"}],"version-history":[{"count":13,"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/posts\/162\/revisions"}],"predecessor-version":[{"id":181,"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/posts\/162\/revisions\/181"}],"wp:attachment":[{"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/media?parent=162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/categories?post=162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elixlab.it\/wps\/wp-json\/wp\/v2\/tags?post=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}