2016-09-21 71 views
-1

我有我的数据这样的字符串。json使分离成双引号

Categories { "0: Snack, 1:Juice, 2:Any "} 

我要输出这种方式代替,

{"0: Snack", "1:Juice", "2:Any"} 

我怎样才能做到这一点?

+0

我没有看到任何JSON或任何PHP - 你会分享你有麻烦的代码吗? –

+0

json不在这里 –

+2

这不是JSON字符串,它真的看起来像什么 – RiggsFolly

回答

1

与非JSON字符串开始:

$your_string = '{ "0: Snack, 1:Juice, 2:Any "}'; 

剪掉外括号,报价和空间,然后在逗号爆炸:

$trimmed = trim($your_string, '{}" '); 
$split = explode(', ', $trimmed); 

这将让你像这样的数组:

array (size=3) 
    0 => string '0: Snack' (length=8) 
    1 => string '1:Juice' (length=7) 
    2 => string '2:Any' (length=5) 

从这一点来说,你可以得到非JSON导致你想是这样的:

$result = '{"' . implode('", "', $split) . '"}'; 

或实际得到JSON这样的:

$resplit = array_map(function($x) { return explode(':', $x); }, $split); 
$indexed = array_column($resplit, 1, 0); 
$json = json_encode($indexed); 

注意,因为你有整数索引是从零开始和顺序,将JSON你最终会是一个数组([" Snack","Juice","Any"]),而比对象({"0":" Snack","1":"Juice","2":"Any"})。对于任何其他索引,您将获得对象表单。

+0

会试试这个,谢谢! – Dhenn