如何将 JSON 字符串转换为 PHP 对象或数组创建 *代码*

How to convert JSON string to PHP object or array creation *code*

首先:这是一个完全不同的问题 - How to convert JSON string to array

我的问题...


我有一个有效的 JSON 字符串分配给 php 变量,$json

我知道我可以 运行 将其转换为 json_decode($json, true); 以在 运行 时解析为 php 数组,但是我想更进一步并转换这是一个可重用的 php 数组代码字符串,可以简单地复制并粘贴到 php 脚本中,例如 $array = 'php array code here'.

免不了要问的人"why?",举个例子:

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


我知道我可以做到:

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

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

哪个让你接近...

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

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

)

但是当然还有一些工作要做...目前我会把它复制到 Sublime Text 或其他类似的文本操作工具中,然后在某些地方使用 find/replace 或正则表达式 find/replace个案。但我正在寻找的是一个更快、更优雅的解决方案,我可以从字面上将 JSON 复制并粘贴到某个脚本(或任何地方!),然后 运行 它得到 this :

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

有人已经在某个地方创建了一个很好的工具来执行此操作吗?我找不到任何东西。我对 任何 优雅的解决方案持开放态度,并将愉快地支持任何对从 JSON 到 PHP 对象/数组的基本桥接方法进行改进的答案创建代码。谢谢!

<?php

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

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

输出:

$output = array (
    0 =>
        array (
            'ID' => '1',
            'Name' => 'Test One',
        ),
    1 =>
        array (
            'ID' => '2',
            'Name' => 'Test Two',
        ),
);