com.github.plokhotnyuk.jsoniter_scala.core

Members list

Concise view

Type members

Classlikes

trait JsonCodec[A] extends JsonValueCodec[A] with JsonKeyCodec[A]

A JsonCodec[A] instance is a universal codec for JSON values and keys.

A JsonCodec[A] instance is a universal codec for JSON values and keys.

BEWARE: Minimize usage of JsonCodec[A] due to possible creation of the scalability limit on the JDK level, for more info see:

Attributes

Graph
Supertypes
trait JsonKeyCodec[A]
trait Serializable
class Object
trait Matchable
class Any
trait JsonKeyCodec[A] extends Serializable

A JsonKeyCodec[A] instance has the ability to decode and encode JSON keys to/from values of type A, potentially failing with an error if the JSON input is not a key or does not encode a value of the given type or A cannot be encoded properly according to RFC-8259 requirements.

A JsonKeyCodec[A] instance has the ability to decode and encode JSON keys to/from values of type A, potentially failing with an error if the JSON input is not a key or does not encode a value of the given type or A cannot be encoded properly according to RFC-8259 requirements.

Attributes

Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
trait JsonCodec[A]
final class JsonReader

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
object JsonReader

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
class JsonReaderException extends RuntimeException

Attributes

Graph
Supertypes
class RuntimeException
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
trait JsonValueCodec[A] extends Serializable

A JsonValueCodec[A] instance has the ability to decode and encode JSON values to/from values of type A, potentially failing with an error if the JSON content does not encode a value of the given type or A cannot be encoded properly according to RFC-8259 requirements.

A JsonValueCodec[A] instance has the ability to decode and encode JSON values to/from values of type A, potentially failing with an error if the JSON content does not encode a value of the given type or A cannot be encoded properly according to RFC-8259 requirements.

Attributes

Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
trait JsonCodec[A]
final class JsonWriter

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
object JsonWriter

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
class JsonWriterException extends RuntimeException

Attributes

Graph
Supertypes
class RuntimeException
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
class ReaderConfig extends Serializable

Configuration for com.github.plokhotnyuk.jsoniter_scala.core.JsonReader that contains flags for tuning of parsing exceptions and preferred sizes for internal buffers that are created on the reader instantiation and reused in runtime for parsing of messages.
All configuration params already initialized by recommended default values, but in some cases they should be altered for performance reasons:

Configuration for com.github.plokhotnyuk.jsoniter_scala.core.JsonReader that contains flags for tuning of parsing exceptions and preferred sizes for internal buffers that are created on the reader instantiation and reused in runtime for parsing of messages.
All configuration params already initialized by recommended default values, but in some cases they should be altered for performance reasons:

  • turn off stack traces for parsing exceptions to greatly reduce impact on performance for cases when exceptions can be not exceptional (e.g. under DoS attacks over open to the world systems), see more details here: https://shipilev.net/blog/2014/exceptional-performance/

  • turn off appending of hex dump to minimize length of exception message

  • increase preferred size of an internal byte buffer for parsing from java.io.InputStream or java.nio.DirectByteBuffer to reduce allocation rate of grown and then reduced buffers during parsing of large (>16Kb) numbers (including stringified), raw values, or ADT instances with the discriminator field doesn't appear in the beginning of the JSON object

  • increase preferred size of an internal char buffer to reduce allocation rate of grown and then reduced buffers when large (>4Kb) string instances need to be parsed including those one which use Base16 or Base64 encodings

Attributes

appendHexDumpToParseException

a flag that allows to turn off hex dumping of affected by error part of an internal byte buffer

checkForEndOfInput

a flag to check and raise an error if some non whitespace bytes will be detected after successful parsing of the value

hexDumpSize

a size of the hex dump in 16-byte lines before and after the 16-byte line where an error occurs

maxBufSize

a max size (in bytes) of an internal byte buffer when parsing from java.io.InputStream or java.nio.DirectByteBuffer

maxCharBufSize

a max size (in chars) of an internal char buffer for parsing of string values including those one which use Base16 or Base64 encodings

preferredBufSize

a preferred size (in bytes) of an internal byte buffer when parsing from java.io.InputStream or java.nio.DirectByteBuffer

preferredCharBufSize

a preferred size (in chars) of an internal char buffer for parsing of string values

throwReaderExceptionWithStackTrace

a flag that allows to turn on a stack traces for debugging purposes in development

Companion:
object
Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
object ReaderConfig.type
object ReaderConfig extends ReaderConfig

Attributes

Companion:
class
Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Self type
class WriterConfig extends Serializable

Configuration for com.github.plokhotnyuk.jsoniter_scala.core.JsonWriter that contains params for formatting of output JSON and for tuning of preferred size for internal byte buffer that is created on the writer instantiation and reused in runtime for serialization of messages using java.io.OutputStream or java.nio.DirectByteBuffer.
All configuration params already initialized to default values, but in some cases they should be altered:

Configuration for com.github.plokhotnyuk.jsoniter_scala.core.JsonWriter that contains params for formatting of output JSON and for tuning of preferred size for internal byte buffer that is created on the writer instantiation and reused in runtime for serialization of messages using java.io.OutputStream or java.nio.DirectByteBuffer.
All configuration params already initialized to default values, but in some cases they should be altered:

  • turn on pretty printing by specifying of indention step that is greater than 0

  • turn on escaping of Unicode characters to serialize with only ASCII characters

  • increase preferred size of an internal byte buffer to reduce allocation rate of grown and then reduced buffers when writing to java.io.OutputStream or java.nio.DirectByteBuffer lot of large (>16Kb) scala.math.BigDecimal, scala.math.BigInt or other non escaped ASCII strings written using JsonWriter.writeNonEscapedAsciiKey or JsonWriter.writeNonEscapedAsciiVal

Attributes

escapeUnicode

a flag to turn on hexadecimal escaping of all non-ASCII chars

indentionStep

a size of indention for pretty-printed formatting or 0 for compact output

preferredBufSize

a preferred size (in bytes) of an internal byte buffer when writing to java.io.OutputStream or java.nio.DirectByteBuffer

throwWriterExceptionWithStackTrace

a flag that allows to turn on a stack traces for debugging purposes in development

Companion:
object
Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
object WriterConfig.type
object WriterConfig extends WriterConfig

Attributes

Companion:
class
Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Self type

Value members

Concrete methods

def readFromArray[A](buf: Array[Byte], config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

Attributes

A

type of the value to parse

buf

the byte array to parse from

codec

a codec for the given A type

config

a parsing configuration

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also in case if end of input is detected while some input bytes are expected

java.lang.NullPointerException

if any of codec, buf or config is null

def readFromArrayReentrant[A](buf: Array[Byte], config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

While it is less efficient than parsing from a byte array using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

buf

the byte array to parse from

codec

a codec for the given A type

config

a parsing configuration

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also in case if end of input is detected while some input bytes are expected

java.lang.NullPointerException

if any of codec, buf or config is null

def readFromByteBuffer[A](bbuf: ByteBuffer, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from a byte buffer into a value of given A type.

Deserialize JSON content encoded in UTF-8 from a byte buffer into a value of given A type.

Parsing will start from the current position and will continue until the limit of the provided byte buffer or the value will be parsed before reaching of the limit. In any case the buffer position will be set to the next position after the last read byte.

Attributes

A

type of the value to parse

bbuf

the byte buffer which will be parsed

codec

a codec for the given A type

config

a parsing configuration

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for the result type, also in case if end of input is detected while some input bytes are expected

java.lang.NullPointerException

if any of codec, bbuf or config is null

def readFromByteBufferReentrant[A](bbuf: ByteBuffer, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from a byte buffer into a value of given A type.

Deserialize JSON content encoded in UTF-8 from a byte buffer into a value of given A type.

Parsing will start from the current position and will continue until the limit of the provided byte buffer or the value will be parsed before reaching of the limit. In any case the buffer position will be set to the next position after the last read byte.

While it is less efficient than parsing from a byte buffer using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

bbuf

the byte buffer which will be parsed

codec

a codec for the given A type

config

a parsing configuration

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for the result type, also in case if end of input is detected while some input bytes are expected

java.lang.NullPointerException

if any of codec, bbuf or config is null

def readFromStream[A](in: InputStream, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from an input stream into a value of given A type.

Deserialize JSON content encoded in UTF-8 from an input stream into a value of given A type.

BEWARE: It is a non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

in

the input stream to parse from

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also if a low-level I/O problem (unexpected end-of-input, network error) occurs while some input bytes are expected

java.lang.NullPointerException

if any of codec, in or config is null

def readFromStreamReentrant[A](in: InputStream, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from an input stream into a value of given A type.

Deserialize JSON content encoded in UTF-8 from an input stream into a value of given A type.

While it is less efficient than scanning JSON values from an input stream using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

in

the input stream to parse from

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also if a low-level I/O problem (unexpected end-of-input, network error) occurs while some input bytes are expected

java.lang.NullPointerException

if any of codec, in or config is null

def readFromString[A](s: String, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content from a string into a value of given A type.

Deserialize JSON content from a string into a value of given A type.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

s

a value of string which will be parsed

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains invalid JSON content or the input JSON structure does not match structure that expected for the result type, also in case if end of input is detected while some input characters are expected

java.lang.NullPointerException

if any of codec, s or config is null

def readFromStringReentrant[A](s: String, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content from a string into a value of given A type.

Deserialize JSON content from a string into a value of given A type.

While it is less efficient than parsing from a string using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

s

a value of string which will be parsed

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains invalid JSON content or the input JSON structure does not match structure that expected for the result type, also in case if end of input is detected while some input characters are expected

java.lang.NullPointerException

if any of codec, s or config is null

def readFromSubArray[A](buf: Array[Byte], from: Int, to: Int, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

Attributes

A

type of the value to parse

buf

the byte array to parse from

codec

a codec for the given A type

config

a parsing configuration

from

the start position of the provided byte array

to

the position of end of input in the provided byte array

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also in case if end of input is detected while some input bytes are expected

java.lang.ArrayIndexOutOfBoundsException

if the to is greater than buf length or negative, or from is greater than to or negative

java.lang.NullPointerException

if any of codec, buf or config is null

def readFromSubArrayReentrant[A](buf: Array[Byte], from: Int, to: Int, config: ReaderConfig)(implicit codec: JsonValueCodec[A]): A

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

Deserialize JSON content encoded in UTF-8 from a byte array into a value of given A type.

While it is less efficient than parsing from a sub array using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

buf

the byte array to parse from

codec

a codec for the given A type

config

a parsing configuration

from

the start position of the provided byte array

to

the position of end of input in the provided byte array

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also in case if end of input is detected while some input bytes are expected

java.lang.ArrayIndexOutOfBoundsException

if the to is greater than buf length or negative, or from is greater than to or negative

java.lang.NullPointerException

if any of codec, buf or config is null

def scanJsonArrayFromStream[A](in: InputStream, config: ReaderConfig)(f: A => Boolean)(implicit codec: JsonValueCodec[A]): Unit

Deserialize JSON array encoded in UTF-8 from an input stream into its values of given A type.

Deserialize JSON array encoded in UTF-8 from an input stream into its values of given A type.

All parsed values will be passed to consuming function f.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

f

a consumer of values, that returns true to continue scanning or false to complete it

in

the input stream to parse from

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also if a low-level I/O problem (unexpected end-of-input, network error) occurs while some input bytes are expected

java.lang.NullPointerException

if any of codec, in or config is null

java.lang.Throwable

if some error was thrown by f() call

def scanJsonArrayFromStreamReentrant[A](in: InputStream, config: ReaderConfig)(f: A => Boolean)(implicit codec: JsonValueCodec[A]): Unit

Deserialize JSON array encoded in UTF-8 from an input stream into its values of given A type.

Deserialize JSON array encoded in UTF-8 from an input stream into its values of given A type.

All parsed values will be passed to consuming function f.

While it is less efficient than scanning JSON array from an input stream using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

f

a consumer of values, that returns true to continue scanning or false to complete it

in

the input stream to parse from

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also if a low-level I/O problem (unexpected end-of-input, network error) occurs while some input bytes are expected

java.lang.NullPointerException

if any of codec, in or config is null

java.lang.Throwable

if some error was thrown by f() call

def scanJsonValuesFromStream[A](in: InputStream, config: ReaderConfig)(f: A => Boolean)(implicit codec: JsonValueCodec[A]): Unit

Deserialize JSON of streaming values encoded in UTF-8 from an input stream into values of given A type.

Deserialize JSON of streaming values encoded in UTF-8 from an input stream into values of given A type.

All parsed values will be passed to consuming function f.

BEWARE: It is a non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

f

a consumer of values, that returns true to continue scanning or false to complete it

in

the input stream to parse from

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also if a low-level I/O problem (unexpected end-of-input, network error) occurs while some input bytes are expected

java.lang.NullPointerException

if any of codec, in or config is null

java.lang.Throwable

if some error was thrown by f() call

def scanJsonValuesFromStreamReentrant[A](in: InputStream, config: ReaderConfig)(f: A => Boolean)(implicit codec: JsonValueCodec[A]): Unit

Deserialize JSON of streaming values encoded in UTF-8 from an input stream into values of given A type.

Deserialize JSON of streaming values encoded in UTF-8 from an input stream into values of given A type.

All parsed values will be passed to consuming function f.

While it is less efficient than scanning JSON values from an input stream using pooled readers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of the value to parse

codec

a codec for the given A type

config

a parsing configuration

f

a consumer of values, that returns true to continue scanning or false to complete it

in

the input stream to parse from

Returns:

a successfully parsed value

Throws:
JsonReaderException

if underlying input contains malformed UTF-8 bytes, invalid JSON content or the input JSON structure does not match structure that expected for result type, also if a low-level I/O problem (unexpected end-of-input, network error) occurs while some input bytes are expected

java.lang.NullPointerException

if any of codec, in or config is null

java.lang.Throwable

if some error was thrown by f() call

def writeToArray[A](x: A, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Array[Byte]

Serialize the x argument to a new allocated instance of byte array in UTF-8 encoding of JSON format.

Serialize the x argument to a new allocated instance of byte array in UTF-8 encoding of JSON format.

BEWARE: It is a non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of value to serialize

codec

a codec for the given value

config

a serialization configuration

x

the value to serialize

Returns:

a byte array with x serialized to JSON

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.NullPointerException

if any of x, codec or config is null

def writeToArrayReentrant[A](x: A, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Array[Byte]

Serialize the x argument to a new allocated instance of byte array in UTF-8 encoding of JSON format.

Serialize the x argument to a new allocated instance of byte array in UTF-8 encoding of JSON format.

While it is less efficient than serialization to a byte array using pooled writers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of value to serialize

codec

a codec for the given value

config

a serialization configuration

x

the value to serialize

Returns:

a byte array with x serialized to JSON

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.NullPointerException

if any of x, codec or config is null

def writeToByteBuffer[A](x: A, bbuf: ByteBuffer, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Unit

Serialize the x argument to the given instance of byte buffer in UTF-8 encoding of JSON format.

Serialize the x argument to the given instance of byte buffer in UTF-8 encoding of JSON format.

Serialization will start from the current position up to the provided byte buffer limit. On return the byte buffer will has position set to the next position after the last written byte.

BEWARE: It is a non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of value to serialize

bbuf

a byte buffer where the value should be serialized

codec

a codec for the given value

config

a serialization configuration

x

the value to serialize

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.NullPointerException

if any of x, codec, bbuf or config is null

java.nio.BufferOverflowException

if the bbuf limit was exceeded during serialization

java.nio.ReadOnlyBufferException

if the bbuf is read-only

def writeToByteBufferReentrant[A](x: A, bbuf: ByteBuffer, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Unit

Serialize the x argument to the given instance of byte buffer in UTF-8 encoding of JSON format.

Serialize the x argument to the given instance of byte buffer in UTF-8 encoding of JSON format.

Serialization will start from the current position up to the provided byte buffer limit. On return the byte buffer will has position set to the next position after the last written byte.

While it is less efficient than serialization to a byte buffer pooled writers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of value to serialize

bbuf

a byte buffer where the value should be serialized

codec

a codec for the given value

config

a serialization configuration

x

the value to serialize

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.NullPointerException

if any of x, codec, bbuf or config is null

java.nio.BufferOverflowException

if the bbuf limit was exceeded during serialization

java.nio.ReadOnlyBufferException

if the bbuf is read-only

def writeToStream[A](x: A, out: OutputStream, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Unit

Serialize the x argument to the provided output stream in UTF-8 encoding of JSON format.

Serialize the x argument to the provided output stream in UTF-8 encoding of JSON format.

BEWARE: It is a non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of value to serialize

codec

a codec for the given value

config

a serialization configuration

out

an output stream to serialize into

x

the value to serialize

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.io.IOException

if an I/O error occurs in a call to output stream

java.lang.NullPointerException

if any of x, codec, out or config is null

def writeToStreamReentrant[A](x: A, out: OutputStream, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Unit

Serialize the x argument to the provided output stream in UTF-8 encoding of JSON format.

Serialize the x argument to the provided output stream in UTF-8 encoding of JSON format.

While it is less efficient than serialization to an output stream using pooled writers but it can be safely used with a non-reentrant call is used in the same thread stack.

Attributes

A

type of value to serialize

codec

a codec for the given value

config

a serialization configuration

out

an output stream to serialize into

x

the value to serialize

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.io.IOException

if an I/O error occurs in a call to output stream

java.lang.NullPointerException

if any of x, codec, out or config is null

def writeToString[A](x: A, config: WriterConfig)(implicit codec: JsonValueCodec[A]): String

Serialize the x argument to a string in JSON format.

Serialize the x argument to a string in JSON format.

BEWARE: It is a non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of value to serialize

codec

a codec for the given value

config

a serialization configuration

x

the value to serialize

Returns:

a string with x serialized to JSON

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.NullPointerException

if any of x, codec or config is null

def writeToStringReentrant[A](x: A, config: WriterConfig)(implicit codec: JsonValueCodec[A]): String

Serialize the x argument to a string in JSON format.

Serialize the x argument to a string in JSON format.

While it is less efficient than serialization to a string using pooled writers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of value to serialize

codec

a codec for the given value

config

a serialization configuration

x

the value to serialize

Returns:

a string with x serialized to JSON

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.NullPointerException

if any of x, codec or config is null

def writeToSubArray[A](x: A, buf: Array[Byte], from: Int, to: Int, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Int

Serialize the x argument to the given instance of byte array in UTF-8 encoding of JSON format.

Serialize the x argument to the given instance of byte array in UTF-8 encoding of JSON format.

BEWARE: It is non-reentrant routine and should not be used in a nested way in the same thread.

Attributes

A

type of value to serialize

buf

a byte array where the value should be serialized

codec

a codec for the given value

config

a serialization configuration

from

a position in the byte array from which serialization of the value should start

to

an exclusive position in the byte array that limits where serialization of the value should stop

x

the value to serialize

Returns:

number of next position after last byte serialized to buf

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.ArrayIndexOutOfBoundsException

if the from is greater than to or negative, if 'to' is greater than buf length or to limit was exceeded during serialization

java.lang.NullPointerException

if any of x, codec, buf or config is null

def writeToSubArrayReentrant[A](x: A, buf: Array[Byte], from: Int, to: Int, config: WriterConfig)(implicit codec: JsonValueCodec[A]): Int

Serialize the x argument to the given instance of byte array in UTF-8 encoding of JSON format.

Serialize the x argument to the given instance of byte array in UTF-8 encoding of JSON format.

While it is less efficient than serialization to a sub array using pooled writers but it can be safely used when a non-reentrant call is used in the same thread stack.

Attributes

A

type of value to serialize

buf

a byte array where the value should be serialized

codec

a codec for the given value

config

a serialization configuration

from

a position in the byte array from which serialization of the value should start

to

an exclusive position in the byte array that limits where serialization of the value should stop

x

the value to serialize

Returns:

number of next position after last byte serialized to buf

Throws:
JsonWriterException

if the value to serialize contains strings, double or float values which cannot be properly encoded

java.lang.ArrayIndexOutOfBoundsException

if the from is greater than to or negative, if 'to' is greater than buf length or to limit was exceeded during serialization

java.lang.NullPointerException

if any of x, codec, buf or config is null