让我先说我是使用 json 和序列化等的新手。我正在尝试从某些案例类中创建一些 json。这是我正在使用的 scala 工作表中的代码:
import net.liftweb.json.DefaultFormats
import net.liftweb.json.Serialization.write
implicit val formats = DefaultFormats
// DBObjectTypes is an enumeration not shown in this snippet.
def update(dbObject: DBObjectTypes, updatePair: Map[String, Any]): Unit = {
case class Query(objectType: String, id: String, version: Long)
case class Update($set: Map[String, Any])
case class QueryUpdate(query: Query, update: Update)
val queryUpdate = QueryUpdate(Query(dbObject.toString, "test", 1L), Update(updatePair))
val updateJson = write(queryUpdate)
println(updateJson)
}
// SRAsubmission is an enumeration not show in this code snippet
update(SRAsubmission, Map("Desc" -> "Foo"))
这会产生以下 JSON:
{"$outer":{},"query":{"$outer":{},"objectType":"SRAsubmission","id":"test","version":1},"update":{"$outer":{},"$set":{"Desc":"Foo"}}}
我想要的是如下:
{"query":{"objectType":"SRAsubmission","id":"test","version":1},"update":{"$set":{"Desc":"Foo"}}}
我不明白为什么我得到 $outer: {} json 元素。我很确定这可能是我不理解但无法在 StackOverflow 或 Google 上找到任何答案的基本问题。提前感谢您的帮助!