pub fn json_type<J: JsonOrNullableJsonOrJsonbOrNullableJsonb + MaybeNullableValue<Text>, j>(
j: j,
) -> json_type<J, j>where
j: AsExpression<J>,
Available on crate feature
sqlite
only.Expand description
The json_type(X) function returns the “type” of the outermost element of X. The “type” returned by json_type() is one of the following SQL text values: ‘null’, ‘true’, ‘false’, ‘integer’, ‘real’, ‘text’, ‘array’, or ‘object’.
This function requires at least SQLite 3.38 or newer
§Example
let result = diesel::select(json_type::<Json, _>(json!({"a": [2, 3.5, true, false, null, "x"]})))
.get_result::<String>(connection)?;
assert_eq!("object", result);
let result = diesel::select(json_type::<Jsonb, _>(json!({"a": [2, 3.5, true, false, null, "x"]})))
.get_result::<String>(connection)?;
assert_eq!("object", result);
let result = diesel::select(json_type::<Nullable<Json>, _>(None::<serde_json::Value>))
.get_result::<Option<String>>(connection)?;
assert_eq!(None, result);