Php 修改JSON数据
我想使用PHP修改JSON数据格式。Php 修改JSON数据,php,json,Php,Json,我想使用PHP修改JSON数据格式。我有这样一个数组: Array ( [0] => stdClass Object ( [0] => Thu Apr 30 12:25:12 +0000 2015 ) [1] => stdClass Object ( [0] => Wed Apr 15 21:57:05 +0000 2015 ) ) [{"0":"Thu Apr 30 12:25:12 +0000 2015"},{"0":"Wed
我有这样一个数组:
Array (
[0] => stdClass Object (
[0] => Thu Apr 30 12:25:12 +0000 2015 )
[1] => stdClass Object (
[0] => Wed Apr 15 21:57:05 +0000 2015 )
)
[{"0":"Thu Apr 30 12:25:12 +0000 2015"},{"0":"Wed Apr 15 21:57:05 +0000 2015"}]
我尝试了json_编码($data);但事情是这样的:Array (
[0] => stdClass Object (
[0] => Thu Apr 30 12:25:12 +0000 2015 )
[1] => stdClass Object (
[0] => Wed Apr 15 21:57:05 +0000 2015 )
)
[{"0":"Thu Apr 30 12:25:12 +0000 2015"},{"0":"Wed Apr 15 21:57:05 +0000 2015"}]
但是我想要这种格式:["Thu Apr 30 12:25:12 +0000 2015","Wed Apr 15 21:57:05 +0000 2015"]
我该怎么办?在调用
json\u encode()
之前,您需要更改数组的结构
我不知道为什么会有这样一个结构的数组,您可能想看看$data
是如何以这种格式创建的。但是,使用您所拥有的:
$dates = array();
foreach ($data as $obj) {
$dates[] = $obj->0;
}
print_r(json_encode($dates));
另外,anant kumar singh提出了一个很好的观点,如果您稍后反序列化此JSON,它将不会生成相同的数组。因此,您应该再次查看此数组是如何序列化和反序列化的,并确保它们匹配。尝试此函数,将数组作为参数传递
function to_array_of_strings($data){
$result_array = array();
foreach($data as $key => $object){
foreach($object as $object_key => $object_value){
$result_array[] = $object_value;
}
}
return $result_array;
}
我试过这个,它很有效:
$i=0;
foreach($fin as $key1 => $value){
foreach($value as $key2 => $value2){
$dates[$i]= $value2 ;
$i++;
}
}
你为什么要这样。下次它将不会被解码。您需要将结构修改为字符串数组,而不是对象的对象。我将返回并重新讨论初始数组是如何创建的。您显然认为您正在创建一个简单数组,但实际上您已经创建了一个对象数组,每个对象的属性为“0”。首先@RiggsFolly,我有一个数据,我想解析它[经过一些编码后,我得到了这种数据格式($data),事实上,我想得到一个对象数组,用它来获取统计数据,如果有更大的可能性,请通知首先,我有一个数据,我想解析它[经过一些编码后,我得到了这种格式的数据($data),事实上,我想得到一个对象数组来使用它来获取统计数据,如果有更大的可能性,请告知她曾尝试对她的$data进行
json\u编码,她得到了一些东西,但她只想得到其他东西。她不在乎反序列化/解码,她无法得到想要的结果-[“Thu Apr 30 12:25:12+0000 2015”,“2015年4月15日星期三21:57:05+0000”]
采用json
格式。我投了反对票,因为这个答案回答了完全不同的问题。您确实意识到我们的两个答案达到了相同的结果。此外,有多条评论建议重新审视初始结构的制作方式,以从根本上避免此问题,因为所有这些代码都是不必要的。否netheless,我很感激你拥有你的否决票。对于你的解决方案,结果是一个字符串,但不幸的是我想要一个对象数组你说你想要这个[“Thu Apr 30 12:25:12+0000 2015”,“Wed Apr 15 21:57:05+0000 2015”],因此这不是对象数组,而是字符串数组。告诉我是否正确,我将更改答案以匹配您喜欢的内容。从更新的答案将新函数签出为字符串数组($data)。您的第一个解决方案返回的字符串类似于(“[“Thu Apr 30…”)而不是数组