Có cách nào để sử dụng lớp JObject của thư viện lift-json để hoạt động như một Bản đồ không?Tôi có thể sử dụng thư viện Scala lift-json để phân tích cú pháp JSON thành Bản đồ không?
Ví dụ:
val json = """
{ "_id" : { "$oid" : "4ca63596ae65a71dd376938e"} , "foo" : "bar" , "size" : 5}
"""
val record = JsonParser.parse(json)
record: net.liftweb.json.JsonAST.JValue = JObject(List(JField(_id,JObject(List(JField($oid,JString(4ca63596ae65a71dd376938e))))), JField(foo,JString(bar)), JField(size,JInt(5))))
</code>
kỷ lục tôi lại có thể ngờ ("foo") để trở về "thanh"
tôi nhận thấy một hàm giá trị và nó in ra một bản đồ nhưng đối tượng thực tế là một JValue.this.Values?
scala> record.values res43: record.Values = Map((_id,Map($oid -> 4ca63596ae65a71dd376938e)), (foo,bar), (size,5))
scala> record.values("foo") :12: error: record.values of type record.Values does not take parameters record.values("foo")
Có những ví dụ với thư viện lift-json giải nén một lớp trường hợp nhưng trong trường hợp này, tôi không biết schema json trước.
Đây là một câu trả lời liên quan cho phân tích bản đồ như một tham số trong một trường hợp lớp http://stackoverflow.com/questions/5051290/deserializing-case-classes-with-mapstring-any-properties-with-lift-json/6310493#6310493 –