Skip to content

Instantly share code, notes, and snippets.

@Pyppe
Last active August 29, 2015 14:22
Show Gist options
  • Save Pyppe/4b2d60a8b0b9389d70e5 to your computer and use it in GitHub Desktop.
Save Pyppe/4b2d60a8b0b9389d70e5 to your computer and use it in GitHub Desktop.
object Main extends App {
import play.api.libs.json._
import play.api.libs.json.Reads._
val json = Json.obj(
"foo" -> "bar",
"user" -> Json.obj(
"name" -> "Mike",
"age" -> 45,
"food" -> "pizza"
)
)
val userNameAndAge = (__ \ "user").json.update(
__.read[JsObject].map { user =>
val fields = user.fields.filter {
case (field, _) => field == "name" || field == "age"
} // Seq((name,"Mike"), (age,45))
JsObject(fields)
}
)
json.transform(userNameAndAge)
// Now... This yields:
// JsSuccess({"foo":"bar","user":{"name":"Mike","age":45,"food":"pizza"}},/user)
// ... instead of (and what I'd like to have):
// JsSuccess({"foo":"bar","user":{"name":"Mike","age":45}},/user)
// Why?
}
@Pyppe
Copy link
Author

Pyppe commented Jun 11, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment