2016-02-05 2 views
0

У меня проблема с добавлением элементов в массив json.Добавление нового ассоциативного элемента в объект JSON

Структура я хочу, что:

[{"method":"edit","type":"1", "template":"3", "meta":{"title":"Tools", "descirption":"Tools"}}] 

Проблема заключается в том, что я добавить все эти параметры динамически.

Так позволяет сказать, у меня есть для начала:

[{"method":"edit","type":"1", "template":"3"}] 

Как я могу добавить все «мета» массив и, пожалуйста, не быть с толчке(), потому что, чем я буду иметь другую структуру, когда я печать Это.

Когда я использую

$json = json_decode($json, true);

Я хочу иметь:

array(
    method' => edit, 
    'type' => 1, 
    'template' => 3, 
    'meta' => array('title' => '') 
); 

Спасибо совет!

+0

Если вы хотите сделать это на стороне сервера, используйте array_merge – ArrowHead

ответ

0

Итак, я собираюсь предположить, что у вас есть JSON для начала. Так что давайте декодируются в PHP (как вы заметили правильно)

$json = json_decode($json, true); 

Так что теперь мы должны иметь $json['method'] и т.д. Теперь давайте определим $meta

$meta = array('title' => ''); 

И добавьте в $json

$json['meta'] = $meta; 
echo json_encode($json); 
0

Когда ваш текущий JSON декодирует в PHP с помощью json_decode, он будет декодироваться в массив с одним элементом или array[0]. Поэтому для доступа или любого объекта вам нужно сначала указать на индекс 0. Сделайте это так:

$json = '[{"method":"edit","type":"1", "template":"3"}]'; 

$arr = json_decode($json); 
$arr[0]->meta = array('title' => ''); 
$json = json_encode($arr); 

var_dump($json); 
//Result: 
// string '[{"method":"edit","type":"1","template":"3","meta":{"title":""}}]' (length=65) 
Смежные вопросы