Visitor

upickle.core.Visitor
See theVisitor companion object
trait Visitor[-T, +J]

Standard set of hooks uPickle uses to traverse over a structured data. A superset of the JSON, MessagePack, and Scala object hierarchies, since it needs to support efficiently processing all of them.

Note that some parameters are un-set (-1) when not available; e.g. visitArray's length is not set when parsing JSON input (since it cannot be known up front) and the various index parameters are not set when traversing Scala object hierarchies.

When expecting to deal with a subset of the methods; it is common to forward the ones you don't care about to the ones you do; e.g. JSON visitors would forward all visitFloat32/visitInt/etc. methods to visitFloat64

Type parameters

J

the result of visiting elements (e.g. a json AST or side-effecting writer)

T

???

Attributes

See also
Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class LogVisitor[T, V]
object NoOpVisitor.type
trait SimpleVisitor[T, V]
object StringVisitor.type
trait SimpleReader[T]
trait TaggedReadWriter[T]
class Leaf[T]
class Node[T]
trait TaggedReader[T]
class Leaf[T]
class Node[T]
trait Reader[T]
trait ReadWriter[T]
class Delegate[T]
class Delegate[T, V]
class MapReader[T, V, Z]
class Delegate[T, V]
class TraceVisitor[T, J]
class MapReader[T, V, Z]
Show all

Members list

Value members

Abstract methods

def visitArray(length: Int, index: Int): ArrVisitor[T, J]

Value parameters

index

json source position at the start of the [ being visited

Attributes

Returns

a Visitor used for visiting the elements of the array

def visitBinary(bytes: Array[Byte], offset: Int, len: Int, index: Int): J
def visitChar(s: Char, index: Int): J
def visitExt(tag: Byte, bytes: Array[Byte], offset: Int, len: Int, index: Int): J
def visitFalse(index: Int): J

Value parameters

index

json source position at the start of the false being visited

Attributes

def visitFloat32(d: Float, index: Int): J
def visitFloat64(d: Double, index: Int): J

Optional handler for raw double values; can be overriden for performance in cases where you're translating directly between numbers to avoid the overhead of stringifying and re-parsing your numbers (e.g. the WebJson transformer gets raw doubles from the underlying Json.parse).

Optional handler for raw double values; can be overriden for performance in cases where you're translating directly between numbers to avoid the overhead of stringifying and re-parsing your numbers (e.g. the WebJson transformer gets raw doubles from the underlying Json.parse).

Delegates to visitFloat64StringParts if not overriden

Value parameters

d

the input number

index

json source position at the start of the number being visited

Attributes

def visitFloat64String(s: String, index: Int): J

Convenience methods to help you compute the decimal-point-index and exponent-index of an arbitrary numeric string

Convenience methods to help you compute the decimal-point-index and exponent-index of an arbitrary numeric string

Value parameters

index

json source position at the start of the string being visited

s

the text string being visited

Attributes

def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int): J

Visit the number in its text representation.

Visit the number in its text representation.

Value parameters

decIndex

index of the ., relative to the start of the CharSequence, or -1 if omitted

expIndex

index of e or E relative to the start of the CharSequence, or -1 if omitted

index

json source position at the start of the number being visited

s

unparsed text representation of the number.

Attributes

def visitInt32(i: Int, index: Int): J
def visitInt64(i: Long, index: Int): J
def visitNull(index: Int): J

Value parameters

index

json source position at the start of the null being visited

Attributes

def visitObject(length: Int, jsonableKeys: Boolean, index: Int): ObjVisitor[T, J]

Value parameters

index

json source position at the start of the { being visited

Attributes

Returns

a ObjVisitor used for visiting the keys/values of the object

def visitString(s: CharSequence, index: Int): J

Value parameters

index

json source position at the start of the string being visited

s

the text string being visited

Attributes

def visitTrue(index: Int): J

Value parameters

index

json source position at the start of the true being visited

Attributes

def visitUInt64(i: Long, index: Int): J

Concrete methods

def map[Z](f: J => Z): Visitor[T, Z]
def mapNulls[Z](f: J => Z): Visitor[T, Z]
def visitFloat64ByteParts(s: Array[Byte], arrOffset: Int, arrLength: Int, decIndex: Int, expIndex: Int, index: Int): J
def visitFloat64CharParts(s: Array[Char], arrOffset: Int, arrLength: Int, decIndex: Int, expIndex: Int, index: Int): J