How to Convert JSON file into CSV in PHP ? (original) (raw)

Last Updated : 13 Apr, 2021

In this article, we are going to see how to convert JSON data into a CSV file using PHP.

JSON (JavaScript Object Notation) is a dictionary-like notation that can be used to structuring data. It is stored with the extension .json, for example - geeksforgeeks.json On the other hand, CSV (or Comma Separated Value) files represent data in a tabular format, with several rows and columns. An example of a CSV file can be an Excel Spreadsheet. These files have the extension of .csv, for example - geeksforgeeks.csv.

Requirements: XAMPP Server Structure of JSON:

[{ "data1": "value1", "data2": "value2", ..., "data n": "value n" }]

Example:

[{ "student": "sravan kumar", "age": 22, "subject": "java" }]

Used Methods:

  1. json_decode() Method: This function is used to decode or convert a JSON object to a PHP object.
    Syntax:
    json_decode( string, assoc )
    Example:
    $jsondata = '[{
    "student": "sravan kumar",
    "age": 22,
    "subject": "java"
    },
    {
    "student": "ojaswi",
    "age": 21,
    "subject": "java"
    },
    {
    "student": "rohith",
    "age": 22,
    "subject": "dbms"
    },
    {
    "student": "bobby",
    "age": 22,
    "subject": "sql"
    }]';
    // Decode the json data and convert it
    // into an associative array jsonans=jsondecode(jsonans = json_decode(jsonans=jsondecode(jsondata, true);
  2. fopen() Method: It is used to open a file.
    Syntax:
    fopen( filename, file_mode )
    Example:
    // File pointer in writable mode filepointer=fopen(file_pointer = fopen(filepointer=fopen(csv, 'w');
  3. fclose() Method: It is used to close the file.
    Syntax:
    fclose( $file_pointer );
    Example:
    fclose( $file_pointer );
  4. fputcsv() Method: It is used to place the data into CSV file.
    Syntax:
    fputcsv( file, fields )
    Example:
    fputcsv( filepointer,file_pointer, filepointer,i );

Steps to Run:

  * Start XAMPP server

* Open notepad and type the following code in json.php and place it under htdocs folder.

PHP code:

PHP `

jsonans=jsondecode(jsonans = json_decode(jsonans=jsondecode(jsondata, true); // CSV file name => geeks.csv $csv = 'geeks.csv'; // File pointer in writable mode filepointer=fopen(file_pointer = fopen(filepointer=fopen(csv, 'w'); // Traverse through the associative // array using for each loop foreach($jsonans as $i){ // Write the data to the CSV file fputcsv($file_pointer, $i); } // Close the file pointer. fclose($file_pointer); ?>

`

Output: Type localhost/json.php in your browser. You can see the CSV file is created with the file name as geeks.csv