修改JSON数据


modifying a JSON data

我想使用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 ) 
      )

我已经尝试了json_encode($data);但它是这样来的:

[{"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_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++;
        }
    }