根据Clojure中提供的Schema反序列化JSON

时间:2017-07-01 18:27:46

标签: json serialization clojure deserialization jsonschema

任何人都可以建议Clojure libarry,能够正确地反序列化具有UUID等复杂字段类型的对象吗?

我会解析这样的事情:

JSON

{
    "_id": 42,
    "property1": "uuid-value"
}

根据这样的事情:

模式

{
    "type" : "object",
    "properties" : {
        "_id" : {"type" : "integer"},
        "property1" : {"type" : "UUID"}
    }
}

这样的事情:

Clojure表示

{:_id 42 :property1 UUID("uuid-value")}

2 个答案:

答案 0 :(得分:0)

你可以尝试

(cheshire.core/parse-string "{\"_id\":\"someId\",\"property1\":\"uuid-value\"}" true)

答案 1 :(得分:0)

使用json-schema库怎么样?它似乎只是你想要的东西。

示例

(ns my.app
  (:require [webjure.json-schema.validator :refer [validate]]
            [cheshire.core :as cheshire]))

     ;;; then in some function
     (validate (cheshire/parse-string json-schema)
               (cheshire/parse-string json-data))