2017-05-29 24 views
0

我已经保存在我的数据库值作为JSON对象后,获取这些值,我有这样的结果如何从字符串存储为对象的值

'["{ zone :1, cat_id : 1, subcat : 2}","{ zone :1, cat_id : 2, subcat : 2}","{ 
zone :1, cat_id : 2, subcat : 3}"]' 

然后我将它转换与json_decode到数组,然后我得到这个结果

"{ zone :1, cat_id : 1, subcat : 2}" 

,但我没能获得在PHP中区,CAT_ID和SUBCAT值

这样的疗法什么办法让这个价值,我也有像this.So环多条记录我想要一些有效的方法来获得这个值。

+0

请编辑您的问题,包括您所使用的代码。 – Epodax

+0

你能分享相关的代码吗?这将使我们更容易找出问题所在,并帮助您解决问题。没有看到代码,所有人都可以做的只是_guess_。 –

+0

你的原始字符串应该是''[[“zone”:1,“cat_id”:1,“subcat”:2},'使它成为一个完整的JSON值 –

回答

0

实际上,你所拥有的序列化数组是一个表示JSON对象的字符串数组。

所以你需要json_decode整个阵列阵列的每一个值。

$values = '["{ zone :1, cat_id : 1, subcat : 2}","{ zone :1, cat_id : 2, subcat : 2}","{ 
zone :1, cat_id : 2, subcat : 3}"]'; 
$decodedValues = json_decode($values); 
$firstValue = json_decode($decodedValues[0]); 

有你有对子级解码值:)

或者(如果你可以编辑你消耗的字符串格式)

你可以改变这些值的初始格式,因为它成为一个简单的对象数组。如果你想(当然可以)那样做,你只需要在序列化数组中删除"

而不是简单地'["{ zone: 1 ...}"]''[{"zone": 1 ...}]'

+0

$ decodedValues [0]不是有效的JSON! –

+0

哦,没错,因为它是一个有效的JSON,所以你需要在每个属性名称'{“zone”:1}周围加双引号,例如 – atomrc

+0

它应该是''[{“zone”:1 ... }]''不''[{zone:1 ...}]'' –

相关问题