在PHP中将JSON字符串转换为数组?

时间:2014-04-16 05:57:56

标签: php json

我想使用PHP将以下JSON字符串转换为数组...

a:6:{
i:0;a:2:{s:2:"id";d:31003200320082;s:7:"address";s:5:"test1";}
i:1;a:2:{s:2:"id";d:83003500350087;s:7:"address";s:9:"test2";}
i:2;a:2:{s:2:"id";d:41002800280012;s:7:"address";s:5:"test3";}
}

请帮助我....

4 个答案:

答案 0 :(得分:2)

尝试使用

json_decode($data,true)以数组格式获取结果

true表示转换为数组,否则返回对象

答案 1 :(得分:1)

这是最佳方式:

  1. 将字符串存储在PHP变量中:

    $ jsondata ='...... json string在这里......';

  2. 现在使用json_decode PHP函数。

    $ resultdata = json_decode($ jsondata);

  3. 结果将是数组和对象的集合。

    但是,您的数据不是json,而是序列化的,因此您需要使用unserialize

答案 2 :(得分:1)

尝试json_decode()

参考php manual

答案 3 :(得分:0)

解决您的问题:

  1. 您使用的String不是JSON字符串,它实际上是一个序列化数组。因此,您需要使用函数unserialize而不是json_decode。

  2. unserialize未获得成功,因为您拥有的序列化字符串格式不正确。我已经对使用我的弦乐器进行了一些调整,你将获得成功。

  3. 老的畸形之一:

    a:6:{
       i:0;a:2:{s:2:"id";d:31003200320082;s:7:"address";s:5:"test1";}
       i:1;a:2:{s:2:"id";d:83003500350087;s:7:"address";s:9:"test2";}
       i:2;a:2:{s:2:"id";d:41002800280012;s:7:"address";s:5:"test3";}
       }
    

    new Corrected string:

    a:3:{i:0;a:2:{s:2:"id";i:31003200320082;s:7:"address";s:5:"test1";}i:1;a:2:{s:2:"id";i:83003500350087;s:7:"address";s:5:"test2";}i:2;a:2:{s:2:"id";i:41002800280012;s:7:"address";s:5:"test3";}}
    

    祝我朋友度过美好的一天。