解析JSON之类的数据交换格式

时间:2009-12-22 00:20:21

标签: php json data-structures standards

我想使用不使用引号的数据交换格式。也许是基于JSON的东西:

{param:value,param:value,param:{[{param:value,param:value}, {param:value,param:value}]}}

我应该如何在PHP中解析类似的内容。应该通过正则表达式来实现吗?

3 个答案:

答案 0 :(得分:2)

让您的格式不使用引号有什么重要意义?有可能你可以改变其他东西以使这个要求消失(这会更好)。

至于使用正则表达式来解析类似JSON的格式, no 。这是一个 BAD 的想法;正则表达式从来没有真正用于解析像JSON这样的递归结构。至少你会遇到许多正则表达式匹配的问题,你需要用来尝试处理递归;在最坏的情况下,你会遇到试图解决如何匹配和解析递归的问题。

您提出的格式也有其自身的问题:您如何区分密钥值中的,{:与实际{ {1}},,{这是格式的一部分?你如何处理键或值名称中的空格?

答案 1 :(得分:1)

您可以使用XML而不使用任何属性。您还需要避免使用带引号的标题。

答案 2 :(得分:1)

为什么不使用JSON并利用可用的库和工具? This blog entry详细介绍了PHP中的JSON解析器。

  

要处理JSON数据,有JSON   PHP中的扩展可用   在PHP 5.2.0之后。两个功能:   json_encode()和json_decode()是   非常有用的转换和解析   通过PHP实现JSON数据。

当有许多定义明确且经过良好测试的选项(JSON,XML,Google Protocol Buffers,YAML)时,创建另一种格式似乎是重复且容易出错的。