lift/framework — pull request #1584 by Shadowfiend (2014-06-20 04:24:35+00:00)
Title: Joni scala 2.10

This is #1561 reopened with respect to `master`.

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.

Closes #1300.