【问题标题】:How to convert JSON string to PHP object or array creation *code* [duplicate]如何将 JSON 字符串转换为 PHP 对象或数组创建 *code* [重复]
【发布时间】:2018-05-23 12:42:55
【问题描述】:

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

我的问题...


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

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

对于那些不可避免地会问“为什么?”的人,举个例子:

从 API 的文档中复制一个示例 JSON 端点参数,然后快速转换为 php 数组字符串代码以粘贴到测试脚本中作为发出 POST 请求的有效测试参数


我知道我可以做到:

$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 或其他类似的文本操作工具中,并且在某些情况下只使用查找/替换或正则表达式查找/替换。但我正在寻找的是一种更快、更优雅的解决方案,我可以将 JSON 复制并粘贴到某个脚本(或任何地方!)中,然后运行它以获取 this:

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

是否有人已经在某个地方创建了一个很好的工具来执行此操作?我什么也找不到。我对 ANY 优雅的解决方案持开放态度,并且很乐意支持任何对这种从 JSON 桥接到 PHP 对象/数组创建代码的基本方法有所改进的答案。谢谢!

【问题讨论】:

  • 1.print_r(json_decode($json), true); 不会给你stdClass Object 数组。 2. 使用var_export(); 做你想要的
  • 使用 var_export!

标签: php arrays json object data-conversion


【解决方案1】:
<?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',
        ),
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2014-06-22
    • 2014-07-11
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多