我的数据中有这样的字符串。
Categories { "0: Snack, 1:Juice, 2:Any "}
我想以这种方式输出,
{"0: Snack", "1:Juice", "2:Any"}
我该怎么做?
答案 0 :(得分:1)
从非JSON字符串开始:
datetime.strptime
修剪外括号,引号和空格,然后在逗号上爆炸:
$your_string = '{ "0: Snack, 1:Juice, 2:Any "}';
这将为您提供如下数组:
$trimmed = trim($your_string, '{}" ');
$split = explode(', ', $trimmed);
从那时起,您可以获得您想要的非JSON结果:
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);
)而不是一个对象([" Snack","Juice","Any"]
)。对于任何其他索引,您将获得对象表单。