0

I am trying to save simple JSON data to csv using php. But the problem is that I am getting data in columns instead of rows. My JSON looks like: {"userid":"686868","deviceid":"dummy"}

and the code is:

   $csv_write_path = "test.csv";
   $json_str = file_get_contents($json_file);
   $json_obj = json_decode($json_str, true);
   $f = fopen($csv_write_path, 'w');
   foreach ($json_obj as $line){
       fputcsv($f, (array)$line);//tried using fputcsv($f, $line); // it saves nothing
   }
   fclose($f);

And the output is:

693936

dummy

But I want the output file to look like: 693936 | dummy //i mean col wise

can someone suggest me that what possibly is wrong?

1 Answer 1

1

You need to pass it an array of objects.

Your code currently is putting a line on each key of your single object.

example:

[
    {
        "userid": "686868",
        "deviceid": "dummy"
    }
]

then you dont need to cast to an array

fputcsv($f, $line);
Sign up to request clarification or add additional context in comments.

3 Comments

can you give me an example, i am new to json and php
but the issue is that i need to pass simple information only i.e. {"userid":"686868","deviceid":"dummy"}, is there any suggestion on this?
I gave you the answer [{"userid":"686868","deviceid":"dummy"}]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.