json-spread JavaScript Library Example

Download Back To CSSScript.Com

Use the json-spread JavaScript library to flatten nested JSON and spread array elements into separate objects, ideal for CSV/tabular data conversion.

// Input
  [
  {
    "developer_id": 501,
    "username": "alex_dev",
    "programming_skills": [
      {
        "type": "backend",
        "name": "Python",
        "projects": [
          "API Gateway - 2023 Q4",
          "Data Processor - 2024 Q1"
        ]
      },
      {
        "type": "frontend",
        "name": "JavaScript",
        "projects": [
          "Dashboard UI - 2023 Q3",
          "User Portal - 2024 Q1"
        ]
      },
      {
        "type": "database",
        "name": "PostgreSQL",
        "projects": [
          "Schema Design - 2023 Q2",
          "Performance Tuning - 2024 Q2"
        ]
      }
    ]
  },
  {
    "developer_id": 502,
    "username": "sam_code"
  },
  {
    "developer_id": 503,
    "username": "casey_builds",
    "programming_skills": []
  },
  {
    "developer_id": 504,
    "username": "morgan_script",
    "programming_skills": [
      {
        "type": "scripting",
        "name": "Bash",
        "projects": [
          "Deployment Automation - Ongoing",
          "Log Analysis Tool - 2023 Q4"
        ]
      },
       {
        "type": "backend",
        "name": "Go",
        "projects": [
          "Microservice Alpha - 2024 Q1"
        ]
      }
    ]
  }
]
// Output
[
  {
      "developer_id": 501,
      "username": "alex_dev",
      "programming_skills.type": "backend",
      "programming_skills.name": "Python",
      "programming_skills.projects": "API Gateway - 2023 Q4"
  },
  {
      "developer_id": 501,
      "username": "alex_dev",
      "programming_skills.type": "backend",
      "programming_skills.name": "Python",
      "programming_skills.projects": "Data Processor - 2024 Q1"
  },
  {
      "developer_id": 501,
      "username": "alex_dev",
      "programming_skills.type": "frontend",
      "programming_skills.name": "JavaScript",
      "programming_skills.projects": "Dashboard UI - 2023 Q3"
  },
  {
      "developer_id": 501,
      "username": "alex_dev",
      "programming_skills.type": "frontend",
      "programming_skills.name": "JavaScript",
      "programming_skills.projects": "User Portal - 2024 Q1"
  },
  {
      "developer_id": 501,
      "username": "alex_dev",
      "programming_skills.type": "database",
      "programming_skills.name": "PostgreSQL",
      "programming_skills.projects": "Schema Design - 2023 Q2"
  },
  {
      "developer_id": 501,
      "username": "alex_dev",
      "programming_skills.type": "database",
      "programming_skills.name": "PostgreSQL",
      "programming_skills.projects": "Performance Tuning - 2024 Q2"
  },
  {
      "developer_id": 502,
      "username": "sam_code"
  },
  {
      "developer_id": 503,
      "username": "casey_builds",
      "programming_skills": null
  },
  {
      "developer_id": 504,
      "username": "morgan_script",
      "programming_skills.type": "scripting",
      "programming_skills.name": "Bash",
      "programming_skills.projects": "Deployment Automation - Ongoing"
  },
  {
      "developer_id": 504,
      "username": "morgan_script",
      "programming_skills.type": "scripting",
      "programming_skills.name": "Bash",
      "programming_skills.projects": "Log Analysis Tool - 2023 Q4"
  },
  {
      "developer_id": 504,
      "username": "morgan_script",
      "programming_skills.type": "backend",
      "programming_skills.name": "Go",
      "programming_skills.projects": "Microservice Alpha - 2024 Q1"
  }
]