2012-07-24 71 views
1

使用PHP,我该如何解析一个JSON对象,并使用方括号给出的数组并通过管道“|”分隔?PHP:解析JSON和方括号

例如,我需要访问“数据”的第二个组件,在本例中为“英文”。 假设长度是可变的,所以你不能按字符位置切片。

{"Username":"5018", 
"Data":["53094185|English|USA|2012-07-24 12:49:00|AZ|"], 
"Location":"New York"} 
+1

对应于密钥的值'“数据”'是具有单个字符串元素的数组。 JSON不关心字符串分隔符。抓住字符串,“分裂”它,然后继续前进。 – 2012-07-24 16:57:32

+0

谢谢杰克 - 但实际的语法是什么,我似乎无法得到它实际打印出“数据”数组,或它的任何一块。 – 2012-07-24 17:18:41

回答

2

其简单:

$X = json_decode($JSON); 
$arr = explode('|', $X->Data[0]); 
print_r($arr) 
+0

Thanks Max,但代码无效:<?php $ jsontest ='{“Username”:“5018”, “Data”:[“53094185 | English | USA | 2012-07-24 12 :49:00 | AZ |“], ”位置“:”纽约“}'; echo $ jsontest; $ parsed = json_parse($ jsontest); $ arr = explode('|',$ parsed ['Data']); print_r($ arr); ?> – 2012-07-24 17:16:08

+1

它现在应该正常工作,我拼错了一个函数名。它是json_decode而不是''json_parse'''。现在测试! – MaX 2012-07-24 17:19:28

+0

真棒谢谢:) – 2012-07-24 17:52:47

0

json_decode it。您仍然需要拆分数据数组值字符串,因为这只是JSON中的一个简单字符串。