【问题标题】:Code Challenge: Convert var_dump of array to json代码挑战:将数组的 var_dump 转换为 json
【发布时间】:2013-10-07 06:28:17
【问题描述】:

直到今天我才真正考虑过这个问题,但在网上搜索后,我并没有真正找到任何东西。也许我在搜索中的措辞不正确。

给定一个嵌套数组,其中 var_dumped

<pre>array(3) { 'id' =>  string(19) "as-agent-to-shipper" 'name' => string(19) "as-agent-to-shipper" 'children' => array(1) {
[0] =>
array(3) {
  'id' =>
  string(28) "agility-logistics-s-a-de-c-v"
  'name' =>
  string(30) "AGILITY LOGISTICS S.A. DE C.V."
  'data' =>
  array(2) {
    'band' =>
    string(22) "-AS AGENT TO SHIPPER -"
    'relation' =>
    string(13) "Buyer of band"
      }
    }
  }
}

挑战在于:将 var_dumped 数组转换为 json 的最佳优化方法是什么? 这只是正则表达式的问题吗?还是有其他方法?我正在寻找创意。

【问题讨论】:

  • 只需 print_r 而不是 vardump 并显示结果
  • 我们可以先看看你的尝试吗?我想它必须是递归的。
  • 不能 serialize()json_encode() 来帮助您吗?

标签: php regex arrays json var-dump


【解决方案1】:

使用 RegEx 很可能无法解析此结构。

可以为它编写一个专门的解析器,但鉴于 PHP 生成了no promises on its format,这样做是一个非常糟糕的主意。在较小的 PHP 版本更新中,格式可能会发生变化,解析器将停止工作。

更重要的是,var_dump 是有损的,也就是说,在某些情况下,您无法仅通过对象的表示来恢复对象的状态。最简单的例子是资源。 var_dump打开文件返回resource(5) of type (stream),这完全不足以用它做任何有用的事情。

总而言之,这听上去是个坏主意,而且无论用它解决什么问题,都应该以不同的方式解决。

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2011-04-01
    相关资源
    最近更新 更多