It should be perfectly fine to use as long as you're working on independent trees of json_object's. Once you have multiple threads accessing the same or overlapping trees things become more iffy, and I would avoid any multi-threaded mutations or serializations.
Though there has been some effort to make reference counts work more reliably with multiple threads, that's the extent of the support. There are no locks, memory barriers, etc... so if you really _had_ to work with json_object's across threads you'd need to handle that yourself, somehow.
Eric