Я просто искал решение для этого и наткнулся на этот вопрос (уже один год). Ответы, предоставленные до сих пор, были не очень полезны для меня. Так что, надеюсь, это поможет следующему человеку.
Ответ, который я искал, был
$json = json_decode($data,true);
, который возвращает результат в виде структуры массива, а не объекта. Затем довольно просто добавить новые значения:
$json['foo'] = 'bar';
После этого данные, конечно, могут быть возвращены в строку с json_encode()
.