代码挑战:将数组的var_dump转换为json

时间:2013-10-07 06:28:17

标签: php regex arrays json var-dump

直到今天我才真正想过这个,但在网上搜索之后我真的没找到任何东西。也许我没有在搜索中对其进行措辞。

给定一个嵌套数组,其中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的最佳优化方法是什么? 这只是正则表达式的问题吗?或者还有其他方式吗?我在寻找创造力。

1 个答案:

答案 0 :(得分:3)

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

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

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

总而言之,这听起来似乎是一个坏主意,无论遇到什么问题,都应该以不同的方式解决。