Class

co.blocke.scalajack.json

FastTokenizer

Related Doc: package json

Permalink

case class FastTokenizer(capacity: Int) extends JsonTokenizer with Product with Serializable

FastTokenizer is the fastest way to tokenize JSON in ScalaJack. It's fast. It gets its speed, in part, by assuming the given JSON is correct, so there's almost nothing in the way of checking. If it does fail, it blows up with exceptions--not all of them helpful.

Note there's a lot of "primitive" code here, e.g. avoidance of data structures/classes in favor of basic Arrays, etc. This is for speed.

FastTokenizer is best used when you know your JSON is reliable and correct.

The capacity parameter requires some guess about the JSON data you have. It is the size of the arrays created to hold all the index (element) data. It should be safely larger than the maximum number of token elements you reasonably expect to see in a JSON string. For example "[1,2,3]" has 7 elements, while "{"one":1239,"two":false, "three":"hey"} as 8. If you have a weak stomach it can be equal to the size of the largest JSON string, but that's probably wild overkill.

As with all the tokenizers, this is *NOT* thread-safe! Don't share these across threads!

Linear Supertypes
Serializable, Serializable, Product, Equals, JsonTokenizer, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. FastTokenizer
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. JsonTokenizer
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FastTokenizer(capacity: Int)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val capacity: Int

    Permalink
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  13. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  15. def tokenize(s: Array[Char]): JsonIndex

    Permalink
    Definition Classes
    FastTokenizerJsonTokenizer
  16. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from JsonTokenizer

Inherited from AnyRef

Inherited from Any

Ungrouped