给定以下JSON:
{
"field1": "value1",
"field2": "",
"field3": "value3",
"field4": ""
}
如何获得两种不同的JSON,一种包含包含值的字段,另一种包含没有值的字段?以下是最终结果的外观:
{
"field1": "value1",
"field3": "value3"
}
{
"field2": "",
"field4": ""
}
您可以按序列(String, JsValue)
对的方式访问JSON对象的字段,并且可以对它们进行过滤。您可以过滤掉有值和无值的对象,并使用过滤后的序列构造新JsObject
对象。
import play.api.libs.json._
val ls =
("field1", JsString("value1")) ::
("field2", JsString("")) ::
("field3", JsString("value3")) ::
("field4", JsString("")) ::
Nil
val js0 = new JsObject(ls)
def withoutValue(v: JsValue) = v match {
case JsNull => true
case JsString("") => true
case _ => false
}
val js1 = JsObject(js0.fields.filterNot(t => withoutValue(t._2)))
val js2 = JsObject(js0.fields.filter(t => withoutValue(t._2)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句