Я пытаюсь использовать json_decode, чтобы объединить несколько объектов json, а затем перекодировать его. мой JSON выглядит так:
{
"core": {
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
]
}
}
У меня есть несколько таких объектов json, и я хотел бы объединить только массивы "segement" для каждого, чтобы получить что-то вроде этого:
{
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
],
"segment": [
{
"id": 5,
"name": "test3"
},
{
"id": 8,
"name": "test4"
}
]
}
прямо сейчас в моем php-коде я декодирую json, сохраняю каждый массив «сегментов» в строку, а затем кодирую json.
public function handleJSON($json){
$decodeData = json_decode($json);
$segment =$decodeData->core;
return $segment;
}
public function formatJSON(){
$segments = "";
for ($i = 0; $i < count($json);$i++)
{
$segments .= handleJSON($json[$i]);
}
echo json_encode($segments);
}
когда я делаю это, я получаю сообщение об ошибке:
Объект класса stdClass не может быть преобразован в строку
поэтому я попытался сохранить их в массиве:
public function formatJSON(){
$segments = array();
for ($i = 0; $i < count($json);$i++)
{
$segments[$i] = handleJSON($json[$i]);
}
echo json_encode($segments);
}
на этот раз я не получаю сообщение об ошибке, но он хранит весь мой объединенный объект json в скобках массива. как я могу просто вернуть объект JSON, без инкапсуляции в массиве?