More possible typos. <https://www.sqlite.org/draft/json1.html#the_json_object_function> An argument with SQL type TEXT __it__ is normally converted into a quoted JSON string even if the input text is well-formed JSON. --------------- 4.10. The json_type() function The json_type(X) function returns the "type" of the outermost element of X. The json_type(X,P) function returns the "type" of the element in X that is selected by path P. The "type" returned by json_type() is one of the following __an__ SQL text values: 'null', 'true', 'false', 'integer', 'real', 'text', 'array', or 'object'. --------------- [*__The words "array" and "object" are capitalized in section 4.8. Maybe intentional?__*] 4.8. The json_patch() function The json_patch(T,P) SQL function runs the RFC-7396 MergePatch algorithm to apply patch P against input T. The patched copy of T is returned. MergePatch can add, modify, or delete elements of a JSON Object, and so for JSON Objects, the json_patch() routine is a generalized replacement for json_set() and json_remove(). However, MergePatch treats JSON Array objects as atomic. MergePatch cannot append to an Array nor modify individual elements of an Array. It can only insert, replace, or delete the whole Array as a single unit. Hence, json_patch() is not as useful when dealing with JSON that includes Arrays, especially Arrays with lots of substructure.