Delphi中有没有像PHP中的“unserialize()”这样的函数?
我拥有的数组是字符串格式,如下所示:
一个:6:{S:15: “info_buyRequest”;一个:2:{S:3: “数量”; I:1; S:1 5: “super_attribute”;一个:2:{I:234; S:4: “2047”; I:237; S: 4: “4312”;}} S:15: “attributes_info”;一个:2:{I:0;一个:2:{S: 5: “标签”; S:6: “Taglia”; S:5: “值”; S:6:“6 安妮 “;} I:1; A:2:{S:5:” 标签 “; S:9:” TIPOLOGIA “; S:5:” V alue“; s:25:”Completo + Pallone 阿迪达斯“;}} s:11:”simple_name“; s:78:”Maglia Bacca Milan Carlos Ufficiale 2015 2016 Completo Pallone Jersey AC MILAN “; S:10:” simple_sku “; S:4:” - 148 “; S:20:” product_calculations “; I:1; S:13:” 批货 t_type“; I:0;}
谢谢
答案 0 :(得分:4)
Delphi中有没有像PHP中的“unserialize()”这样的函数?
Delphi运行时库中没有任何东西可以直接在PHP serialize()
的输出上运行。该函数使用未标准化的定制格式。在理想的世界中,您将使用广泛接受的标准,如JSON。事实上,PHP支持JSON,如果使用json_encode()
执行序列化,那么在Delphi或任何其他主流语言中反序列化将很简单。
您需要选择以下选项之一来解决问题:
json_encode(unserialize(...))
。serialize()
生成的文本。 FWIW,任何提供serialize()
输出的API都设计得很糟糕,人们可能会认为寻找替代方案是谨慎的。