2016-01-14 80 views
-6

我有这样的JSON对象下面,我想提取这些数据,并输出在PHP提取从JSON数据在Php

{"seat_booked":"A5","0":"A5","1":"A3"} 

然后让他们为这种格式

$seat_booked = "'A5', 'A5', 'A3'"; 

我怎样才能做这个?

+1

[json_decode()](HTTP:// php.net/json_decode)? –

+0

现在有这么多的答案现在更新,现在接受未来的最佳答案.. – devpro

回答

2

我希望你用json_decode()找这个,它很简单的例子:

$string = '{"seat_booked":"A5","0":"A5","1":"A3"}'; 
$decoded = json_decode($string,true); 
$resuiredString = '"'."'".implode("','", $decoded)."'".'"'; 

echo $resuiredString; 

结果:

"'A5','A5','A3'" 

侧面说明:

我建议你了解变量级联。

PHP Concatenation

+0

谢谢Devpro,这真的帮助我 – kikuyu1

+0

@ kikuyu1:提及不,如果它的工作,而不是忘记标记为接受点击左边的绿色勾号,这将有助于未来的其他人。 – devpro

0

要从JSON在PHP中您可以使用json_decode解释here得到一个对象。

但你有另一个问题,你的JSON是错的! 如果你想表示一个一维数组,你至少应该做到这一点

["A5","A5","A3"] 

最后,使用json_decode:

$obj = json_decode('["A5","A5","A3"]'); 
var_dump($obj); 

此外,你可以这样做:

{"0":"A5","1":"A5","2":"A3"} 
$obj = json_decode('{"0":"A5","1":"A3", "2": "A5"}', true); 
var_dump($obj); 

编辑:

从你的问题来看,你是不是很清楚你是否试图从json中取回一个对象,或者如果你只是想从中获取一个字符串。

如果你需要的是一个字符串,那么你甚至不需要json,你可以通过字符串操作和/或使用正则表达式来实现。

但只是为了完整性,如果带引号的逗号分隔字符串是你需要什么,你可以这样做:

$array = json_decode('["A5","A5","A3"]'); 
$str = implode("','",$array); 
$str = "'" . $str . "'"; 
var_dump($str); 
0

另一种解决方案:

$json = '{"seat_booked":"A5","0":"A5","1":"A3"}'; 

$decoded = array_map(
    function($val) { 
     return "'". $val."'"; 
    }, 
    array_values(json_decode($json, true)) 
);