如何将对象数组序列化为JSON JValue?

时间:2011-10-16 09:09:43

标签: arrays json scala lift

有一个对象数组我想将它们序列化为JSON(一个JValue实例)。 我已经尝试了以下两种组合JSON实体的变体:


def items : Array[FooBar] = Array (new FooBar(1), new FooBar(2), new FooBar(3))
def toJson : JValue = {
  val jItems : Array[JValue]= items.map(i => i.toJson)

  // variant 1.
  // val jItemsC = jItems.reduceLeft[JValue](_~_)

  // variant 2.
  val jItemsC = jItems.reduceLeft((a : JObject, b : JValue) => a ~ b)

  "items" -> jItemsC
}

第一个(和第二个(a:JValue,b:JValue))说 value ~ is not a member of net.liftweb.json.package.JValue

第二个说 overloaded method value ~ with alternatives: (right: net.liftweb.json.package.JObject)net.liftweb.json.JsonAST.JObject <and>
(right: (String, net.liftweb.json.package.JValue))net.liftweb.json.JsonAST.JObject
cannot be applied to (net.liftweb.json.package.JValue)

那么问题是什么以及如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

这些应该有效:

val a = Array("a", "b", "c")
Extraction.decompose(a)

JArray(a.toList map JString.apply)