0

FIRSTLY: This is a totally different question - How to convert JSON string to array

MY QUESTION...


I have a valid JSON string assigned to a php variable, $json.

I know that I can run it into json_decode($json, true); to parse into a php array at runtime, however I want to go a step beyond and convert this into a reusable php array code string, which can be simply copied and pasted into a php script, like $array = 'php array code here'.

For those who will inevitably ask "why?", an example:

to copy an example JSON endpoint parameter from an API's docs, then quickly convert to php array string code to paste into a test script as a valid test parameter for making a POST request


I know that I can do this:

$json = '
  [
    {
      "ID": "1",
      "Name": "Test One"
    },
    {
      "ID": "2",
      "Name": "Test Two"
    }
  ]';

echo '<pre>';
echo '$phpArray = ' . print_r(json_decode($json));
echo '</pre>';
exit;

Which gets you close...

$phpArray = Array
(
    [0] => stdClass Object
        (
            [ID] => 1
            [Name] => Test One
        )

    [1] => stdClass Object
        (
            [ID] => 2
            [Name] => Test Two
        )

)

But there is of course still some work to do... currently I would copy this into Sublime Text or some other similar text manipulation tool and just use find/replace or regex find/replace in some cases. But what I am looking for is a quicker, more elegant solution whereby I could literally copy+paste that JSON into some script (or anywhere!), and run it to get this:

$phpArray = [
    0 => [
        'ID' => 1,
        'Name' => 'Test One',
    ],
    1 => [
        'ID' => 2,
        'Name' => 'Test Two',
    ],
];

Has someone created a good tool to do this already somewhere? I couldn't find anything. I am open to ANY elegant solution and will happily upvote any answer that is an improvement on this rudimentary means of bridging from the JSON to a PHP object / array creation code. Thanks!

ajmedway
  • 1,492
  • 14
  • 28

1 Answers1

5
<?php

$json = '
  [
    {
      "ID": "1",
      "Name": "Test One"
    },
    {
      "ID": "2",
      "Name": "Test Two"
    }
  ]';

echo '$output = '.var_export(json_decode($json, true), true).';';

Output:

$output = array (
    0 =>
        array (
            'ID' => '1',
            'Name' => 'Test One',
        ),
    1 =>
        array (
            'ID' => '2',
            'Name' => 'Test Two',
        ),
);
Pyton
  • 1,291
  • 8
  • 19