如何使用OCaml中的Yojson检查JSON对象中是否存在字段?我需要类似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? %b\n" has_x has_y (* true, false *)
答案 0 :(得分:2)
Yojson.Basic.Util.member "x" data
返回Null
。或`Assoc(如果“ x”是键)。
您可以定义
let has_key d k = not ((Yojson.Basic.Util.member k d) = `Null);;