lift/framework — pull request #1561 by Shadowfiend (2014-05-14 17:10:36+00:00)
Title: JField is no longer a JValue

This means more type safety since it is no longer possible
to create invalid JSON where `JField`s are added directly into `JArray`s for
instance. Most noticeable consequence of this change is that `map`, `transform`, `find` and `filter` come in two versions:

```scala
def map(f: JValue => JValue): JValue
def mapField(f: JField => JField): JValue
def transform(f: PartialFunction[JValue, JValue]): JValue
def transformField(f: PartialFunction[JField, JField]): JValue
def find(p: JValue => Boolean): Option[JValue]
def findField(p: JField => Boolean): Option[JField]
...
```

Use `*Field` functions to traverse fields in the JSON, and use the functions
without `Field` in the name to traverse values in the JSON.
---------
This isn't mergable yet; I'll reconcile with the latest `lift_30` branch soon, just wanted to
get the PR open.