I assume you are referring to the json-spirit library that is here: https://github.com/cierelabs/json_spirit (which is the one the Spirit examples are based on).
Calling push_back will return a reference to the json::value object in the array. You can then continue to modify that object (via the reference).
json::value some_list;
json::value my_object = json::construct(
"{"
" \"foo\" : 42 ,"
" \"bar\" : 498.5 ,"
" \"bork\" : [null,23,false]"
"}"
);
json::value& object = some_list.push_back(my_object);
object["sub"] = json::construct("[ {\"id\": 1}, {\"id\": 2} ]");
std::cout << some_list << std::endl;
which will result in:
[{"bar":498.5, "bork":[null, 23, false], "foo":42, "sub":[{"id":1}, {"id":2}]}]