Extraction

object Extraction

Function to extract values from JSON AST using case classes.

See: ExtractionExamples.scala

class Object
trait Matchable
class Any

Value members

Concrete methods

def decompose(a: Any)(implicit formats: Formats): JValue

Decompose a case class into JSON.

Decompose a case class into JSON.

Example:

case class Person(name: String, age: Int)
implicit val formats: Formats = org.json4s.DefaultFormats
Extraction.decompose(Person("joe", 25)) == JObject(JField("age",JInt(25)) :: JField("name",JString("joe")) :: Nil)
def decomposeWithBuilder[T](a: Any, builder: JsonWriter[T])(implicit formats: Formats): T

Decompose a case class into JSON.

Decompose a case class into JSON.

Example:

case class Person(name: String, age: Int)
implicit val formats: Formats = org.json4s.DefaultFormats
Extraction.decompose(Person("joe", 25)) == JObject(JField("age",JInt(25)) :: JField("name",JString("joe")) :: Nil)
def extract[A](json: JValue)(implicit formats: Formats, mf: Manifest[A]): A

Extract a case class from JSON.

Extract a case class from JSON.

Throws
MappingException

is thrown if extraction fails

See also

org.json4s.JsonAST.JValue#extract

def extract(json: JValue, target: TypeInfo)(implicit formats: Formats): Any
def extract(json: JValue, scalaType: ScalaType)(implicit formats: Formats): Any
def extractOpt[A](json: JValue)(implicit formats: Formats, mf: Manifest[A]): Option[A]

Extract a case class from JSON.

Extract a case class from JSON.

See also

org.json4s.JsonAST.JValue#extract

def flatten(json: JValue)(implicit formats: Formats): Map[String, String]

Flattens the JSON to a key/value map.

Flattens the JSON to a key/value map.

def internalDecomposeWithBuilder[T](a: Any, builder: JsonWriter[T])(implicit formats: Formats): Unit

Decompose a case class into JSON.

Decompose a case class into JSON.

This is broken out to avoid calling builder.result when we return from recursion

def loadLazyValValue(a: Any, name: String, defaultValue: Any): <FromJavaObject>

Load lazy val value

Load lazy val value

This is a fix for failed lazy val serialization from FieldSerializer (see org.json4s.native.LazyValBugs test).

We do this by finding the hidden lazy method which will have same name as the lazy val name but with suffix "$lzycompute" (for scala v2.10+), then invoke the method if found, and return the value.

The "$lzycompute" method naming could be changed in future so this method must be adjusted if that happens.

Value Params
a

Object to be serialized

defaultValue

Default value if lazy method is not found

name

Field name to be checked

Returns

Value of invoked lazy method if found, else return the default value

def unflatten(map: Map[String, String], useBigDecimalForDouble: Boolean, useBigIntForLong: Boolean): JValue

Unflattens a key/value map to a JSON object.

Unflattens a key/value map to a JSON object.