Inserts or replaces an own object key with a JSON-text value. Returns a new object and the previous optional JSON value. Does not modify the source. Non-object inputs fail.