{"id":23328,"date":"2025-10-23T21:35:44","date_gmt":"2025-10-23T21:35:44","guid":{"rendered":"https:\/\/wedesignmarbella.com\/convertidor-de-json-a-csv\/"},"modified":"2026-07-02T11:01:38","modified_gmt":"2026-07-02T11:01:38","slug":"convertidor-de-json-a-csv","status":"publish","type":"page","link":"https:\/\/wedesignmarbella.com\/es\/herramientas\/convertidor-de-json-a-csv\/","title":{"rendered":"Convertidor de JSON a CSV"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"23328\" class=\"elementor elementor-23328 elementor-15163\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dd43da5 e-flex e-con-boxed e-con e-parent\" data-id=\"dd43da5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79ba039 elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"79ba039\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Convertidor de JSON a CSV<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b1e203f elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"b1e203f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Upload a JSON file to convert it to CSV.<\/p>\t\t\t\t\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-f524bde e-flex e-con-boxed e-con e-parent\" data-id=\"f524bde\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6db5673 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"6db5673\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<input type=\"file\" id=\"jsonFile\" accept=\".json\">\r\n<br><br><button onclick=\"convertJsonToCsv()\">Convertir a CSV<\/button>\r\n<br\/><button id=\"downloadLink\" style=\"display: none\" href=\"#\" download=\"output.csv\">Descargar CSV<\/button>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4aaa19 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"c4aaa19\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n    <script>\/\/ wdm-Function to convert JSON to CSV\r\n        function convertJsonToCsv() {\r\n            const fileInput = document.getElementById('jsonFile');\r\n            const file = fileInput.files[0];\r\n            if (!file) {\r\n                alert(\"Please upload a JSON file.\");\r\n                return;\r\n            }\r\n            \r\n            const reader = new FileReader();\r\n            reader.onload = function(e) {\r\n                try {\r\n                    const jsonData = JSON.parse(e.target.result);\r\n                    const csvData = jsonToCsv(jsonData);\r\n                    downloadCsv(csvData);\r\n                } catch (error) {\r\n                    alert(\"Invalid JSON file.\");\r\n                }\r\n            };\r\n            reader.readAsText(file);\r\n        }\r\n\r\n        \/\/ wdm-Function to flatten nested JSON objects and convert to CSV format\r\n        function jsonToCsv(jsonData) {\r\n            const flattenJson = (nestedJson, parentKey = '', sep = '_') => {\r\n                let result = [];\r\n                for (const key in nestedJson) {\r\n                    if (nestedJson.hasOwnProperty(key)) {\r\n                        const newKey = parentKey ? `${parentKey}${sep}${key}` : key;\r\n                        const value = nestedJson[key];\r\n\r\n                        if (typeof value === 'object' && !Array.isArray(value)) {\r\n                            result = result.concat(flattenJson(value, newKey, sep));\r\n                        } else if (Array.isArray(value)) {\r\n                            value.forEach((subItem, index) => {\r\n                                result = result.concat(flattenJson(subItem, `${newKey}_${index}`, sep));\r\n                            });\r\n                        } else {\r\n                            result.push([newKey, value]);\r\n                        }\r\n                    }\r\n                }\r\n                return result;\r\n            };\r\n\r\n            const flattenedData = jsonData.map(item => {\r\n                return Object.fromEntries(flattenJson(item));\r\n            });\r\n\r\n            const headers = Object.keys(flattenedData[0]);\r\n            const rows = flattenedData.map(item => headers.map(header => item[header]));\r\n            rows.unshift(headers); \/\/ Add headers at the top\r\n\r\n            return rows.map(row => row.join(',')).join('\\n');\r\n        }\r\n\r\n        \/\/ wdm-Function to trigger CSV file download\r\n        function downloadCsv(csvData) {\r\n            const blob = new Blob([csvData], { type: 'text\/csv' });\r\n            const link = document.getElementById('downloadLink');\r\n            const url = URL.createObjectURL(blob);\r\n            link.href = url;\r\n            link.style.display = 'inline-block'; \/\/ Show the download link\r\n        }\r\n    <\/script>\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-b415f20 e-flex e-con-boxed e-con e-parent\" data-id=\"b415f20\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16d79f6 elementor-align-center elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"16d79f6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wedesignmarbella.com\/es\/herramientas\/\" title=\"Back to Tools\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Volver a Herramientas<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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>Convertidor de JSON a CSV Upload a JSON file to convert it to CSV. Convertir a CSV Descargar CSV Volver a Herramientas<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":23340,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ai_generated_summary":"","footnotes":""},"class_list":["post-23328","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/pages\/23328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/comments?post=23328"}],"version-history":[{"count":0,"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/pages\/23328\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/pages\/23340"}],"wp:attachment":[{"href":"https:\/\/wedesignmarbella.com\/es\/wp-json\/wp\/v2\/media?parent=23328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}