open Ezjsonm (* Combinations of find + get_* that are commonly used *) let find_string json path = find json path |> get_string let find_int json path = find json path |> get_int let find_bool json path = find json path |> get_bool let find_float json path = find json path |> get_float (* Optional versions using Ezjsonm's find_opt *) let find_string_opt json path = Option.map get_string (find_opt json path) let find_int_opt json path = Option.map get_int (find_opt json path) let find_bool_opt json path = Option.map get_bool (find_opt json path) let find_float_opt json path = Option.map get_float (find_opt json path) let assoc_string key fields = List.assoc key fields |> get_string let assoc_int key fields = List.assoc key fields |> get_int let assoc_bool key fields = List.assoc key fields |> get_bool let assoc_float key fields = List.assoc key fields |> get_float let assoc_string_opt key fields = Option.map get_string (List.assoc_opt key fields) let assoc_int_opt key fields = Option.map get_int (List.assoc_opt key fields) let assoc_bool_opt key fields = Option.map get_bool (List.assoc_opt key fields) let assoc_float_opt key fields = Option.map get_float (List.assoc_opt key fields) (* Ezjsonm.get_dict extracts fields, but we keep get_fields as an alias for clarity *) let get_fields = get_dict (* Single field access - simpler than using find with a single-element path *) let get_field json key = List.assoc key (get_dict json) let get_field_opt json key = List.assoc_opt key (try get_dict json with _ -> []) let get_field_string json key = get_field json key |> get_string let get_field_int json key = get_field json key |> get_int let get_field_bool json key = get_field json key |> get_bool let get_field_float json key = get_field json key |> get_float let get_field_string_opt json key = Option.map get_string (get_field_opt json key) let get_field_int_opt json key = Option.map get_int (get_field_opt json key) let get_field_bool_opt json key = Option.map get_bool (get_field_opt json key) let get_field_float_opt json key = Option.map get_float (get_field_opt json key)