【发布时间】:2014-04-25 19:44:00
【问题描述】:
我在PHP 中有一个复杂对象,需要对其进行解析以构建 Json 字符串。我发现了很多我在这里和其他网站找到的例子,但没有一个工作。另一个问题是我的主机在 PHP 5.2 上运行,我无法升级。
这是我的var_dump($myObj)的一个例子:
object(Park)[4]
private 'idObj' => string '60304' (length=5)
private 'name' => string 'AlphaSurf' (length=9)
private 'address' =>
object(Address)[6]
private 'idObj' => string '40304' (length=5)
private 'street' => string 'Champ de la Vigne' (length=17)
private 'number' => string '7' (length=1)
private 'zip' => string '1470' (length=4)
private 'city' => string 'Estavayer-le-Lac' (length=16)
private 'country' =>
object(Country)[8]
private 'idObj' => string '30039' (length=5)
private 'name' => string 'Switzerland' (length=11)
private 'flag' => string 'switzerland.gif' (length=15)
private 'usState' => null
private 'contactInfo' =>
object(ContactInfo)[7]
private 'idObj' => string '70304' (length=5)
private 'phone' => string '' (length=0)
private 'email' => string '' (length=0)
private 'emailcode' => null
private 'confirmed' => string '1' (length=1)
private 'website' => string 'www.alphasurf.ch' (length=16)
private 'mobile' => string '' (length=0)
private 'fax' => string '' (length=0)
private 'newsletter' => string '0' (length=1)
private 'owner' =>
object(User)[9]
private 'idObj' => string '50001' (length=5)
private 'username' => string 'emaborsa' (length=8)
private 'password' => string '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8' (length=40)
private 'type' => string 'ADMIN' (length=5)
private 'state' => string 'ACTIVE' (length=6)
private 'ip' => string '' (length=0)
private 'time' => string '0' (length=1)
private 'address' => null
private 'contactInfo' =>
object(ContactInfo)[11]
private 'idObj' => string '1' (length=1)
private 'phone' => null
private 'email' => string 'info@emaborsa.com' (length=17)
private 'emailcode' => null
private 'confirmed' => string '1' (length=1)
private 'website' => null
private 'mobile' => null
private 'fax' => null
private 'newsletter' => string '1' (length=1)
private 'logo' => string 'Champ de la Vigne 71470' (length=23)
private 'xcoord' => string '46856912' (length=8)
private 'ycoord' => string '6846918' (length=7)
private 'state' => string 'HIDDEN' (length=6)
private 'detail' =>
object(ParkDetail)[10]
private 'idObj' => string '1' (length=1)
private 'descriptionIT' => string '' (length=0)
private 'descriptionEN' => string '' (length=0)
private 'descriptionDE' => string 'xcxcx' (length=5)
private 'type' => string '' (length=0)
private 'kickers' => string '0' (length=1)
private 'boxes' => string '0' (length=1)
private 'rails' => string '0' (length=1)
private 'specials' => string '0' (length=1)
private 'specialsDescriptionIT' => null
private 'specialsDescriptionEN' => null
private 'specialsDescriptionDE' => null
private 'dimension' => string '0' (length=1)
private 'lastPayment' => null
所有属性都是私有的,但也有公共的 getter 和 setter。
【问题讨论】:
-
使用
json_encode有什么问题? -
所有属性都是私有的?你打算用 json 做什么?
-
你可以尝试序列化/反序列化函数。
-
你可以给你的类一个 toJson 方法,你可以在其中创建一个由你的私有变量和 njson_encode 组成的数组并返回它?
-
json_encode($myObj)返回{}