#ocaml
#ocaml
Вопрос:
Как я могу проверить, существует ли поле в объекте JSON, используя Yojson в OCaml? Мне нужно что-то вроде has_key
функции, подобной следующей:
let () =
let data = Yojson.Basic.from_string "{"x": 4}" in
let has_x = has_key data "x" in
let has_y = has_key data "y" in
Printf.printf "has_x? %b, has_y? %bn" has_x has_y (* true, false *)
Ответ №1:
Yojson.Basic.Util.member "x" data
возвращает Null
, если «x» не является ключом данных Yojson; или `Assoc, если «x» является ключом.
вы можете определить
let has_key d k = not ((Yojson.Basic.Util.member k d) = `Null);;