implicit final class JsonParserApplyOps extends AnyVal
Provides JSON-specific Parser constructor methods to the JsonParser
object, for example JsonParser.fieldOf
.
Technically JsonParser
is not a companion object, it is a partially-applied version of the Parser
companion
object which binds the input type to JsonEvent
, so "companion methods" must instead be added as extension methods.
- Source
- package.scala
- Grouped
- Alphabetic
- By Inheritance
- JsonParserApplyOps
- AnyVal
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new JsonParserApplyOps(parserApply: ParserApplyWithBoundInput[JsonEvent])
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- Any
- final def ##(): Int
- Definition Classes
- Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toany2stringadd[JsonParserApplyOps] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (JsonParserApplyOps, B)
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toArrowAssoc[JsonParserApplyOps] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def ensuring(cond: (JsonParserApplyOps) => Boolean, msg: => Any): JsonParserApplyOps
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toEnsuring[JsonParserApplyOps] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (JsonParserApplyOps) => Boolean): JsonParserApplyOps
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toEnsuring[JsonParserApplyOps] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): JsonParserApplyOps
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toEnsuring[JsonParserApplyOps] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): JsonParserApplyOps
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toEnsuring[JsonParserApplyOps] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def fieldOf[T](fieldName: String, parser: JsonParser[T])(implicit arg0: TypeName[T], callerPos: CallerPos): JsonParser[T]
A JsonParser that parses a JSON object by parsing the given mandatory field with the given
JsonParser[T]
.A JsonParser that parses a JSON object by parsing the given mandatory field with the given
JsonParser[T]
.Note that if the given
parser
is available implicitly, you can use the otherfieldOf
signature.The returned parser will fail if the first event is not an
ObjectStart
, or if the expected field does not appear inside the object, or if the value of the expected field causes the underlying parser to fail.This is a shortcut for
Splitter.json(fieldName).as[T].parseFirst
.E.g.
val rawJson = """{ "foo": 1, "bar": true }""" val parser = JsonParser.fieldOf[Boolean]("bar") parser.parse(rawJson) // returns `true`
- T
The type of the extracted value
- fieldName
The name of the expected field
- parser
The underlying parser used to parse the value inside the expected field in the object
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses the given field from a JSON object as a value of type
T
- def fieldOf[T](fieldName: String)(implicit arg0: TypeName[T], arg1: JsonParser[T], callerPos: CallerPos): JsonParser[T]
A JsonParser that parses a JSON object by parsing the given mandatory field with the implicitly-available
JsonParser[T]
.A JsonParser that parses a JSON object by parsing the given mandatory field with the implicitly-available
JsonParser[T]
.The returned parser will fail if the first event is not an
ObjectStart
, or if the expected field does not appear inside the object, or if the value of the expected field causes the underlying parser to fail.This is a shortcut for
Splitter.json(fieldName).as[T].parseFirst
.E.g.
val rawJson = """{ "foo": 1, "bar": true }""" val parser = JsonParser.fieldOf[Boolean]("bar") parser.parse(rawJson) // returns `true`
- T
The type of the extracted value
- fieldName
The name of the expected field
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses the given field from a JSON object as a value of type
T
- def forBoolean: JsonParser[Boolean]
A JsonParser that captures the
Boolean
value from aJBool
event, failing if the first event is not aJBool
. - def forDouble: JsonParser[Double]
A JsonParser that captures a
JDouble
event as aDouble
value, failing if the first event is not aJDouble
. - def forFloat: JsonParser[Float]
A JsonParser that captures a
JDouble
event as aFloat
value, failing if the first event is not aJDouble
. - def forInt: JsonParser[Int]
A JsonParser that captures a
JLong
event as anInt
value, failing if the first event is not aJLong
. - def forLong: JsonParser[Long]
A JsonParser that captures a
JLong
event as aLong
value, failing if the first event is not aJLong
. - def forNull: JsonParser[None.type]
A JsonParser that returns
None
upon encountering aJNull
event, failing upon encountering any other event or an EOF. - def forPrimitive[A](describePrimitive: String, matchPrimitive: (JsonEvent) => Option[A]): JsonParser[A]
Creates a JsonParser which captures the first JsonEvent it sees, expecting a primitive that can satisfy the
matchPrimitive
function.Creates a JsonParser which captures the first JsonEvent it sees, expecting a primitive that can satisfy the
matchPrimitive
function.This is the low-level method used to implement the
forString
,forInt
, etc parsers. Its main use outside of those is if you want to create a parser that handles multiple different primitives without resorting to the use oforElse
.- A
The type of the extracted value
- describePrimitive
A message describing the type of event that this parser expects. Used to construct a SpacException if the
matchPrimitive
returnsNone
- matchPrimitive
A function used to extract a value from the first JsonEvent this parser's handler encounters.
- returns
A JsonParser which attempts to extract some value from the first event it encounters, throwing a SpacException if it cannot
- def forString: JsonParser[String]
A JsonParser that captures the string value from a
JsString
event, failing if the first event is not aJsString
. - def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toStringFormat[JsonParserApplyOps] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- def getClass(): Class[_ <: AnyVal]
- Definition Classes
- AnyVal → Any
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def listOf[T](parser: JsonParser[T])(implicit arg0: TypeName[T], callerPos: CallerPos): JsonParser[List[T]]
A JsonParser that parses a JSON array by parsing each item in the array via the given
parser
, collecting the values to a List.A JsonParser that parses a JSON array by parsing each item in the array via the given
parser
, collecting the values to a List.Note that if the given
parser
is available implicitly, you can use the otherlistOf
signature instead.This is a shortcut for
Splitter.json(anyIndex).joinBy(parser).parseToList
.The returned parser will fail if the first event is not an
ArrayStart
, or if any of the values inside the array cause the underlying parser to fail. E.g. if the underlying parser isJsonParser.forInt
, but one of the values in the array is a string, the exception thrown byJsonParser.forInt
will bubble up through the returned parser.E.g.
val parser = JsonParser.listOf(JsonParser.forInt) parser.parse("[1, 2, 3]") // returns List(1, 2, 3) parser.parse("[]") // returns Nil parser.parse("42") // throws a SpacException parser.parse("[1, 2, false]") // throws a SpacException
- T
The type of the values inside the array
- parser
The underlying parser to use for each value inside the array
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses an array of values as a List[T]
- def listOf[T](implicit arg0: TypeName[T], arg1: JsonParser[T], callerPos: CallerPos): JsonParser[List[T]]
A JsonParser that parses a JSON array by parsing each item in the array via the implicitly-available
JsonParser[T]
, collecting the values to a List.A JsonParser that parses a JSON array by parsing each item in the array via the implicitly-available
JsonParser[T]
, collecting the values to a List.This is a shortcut for
Splitter.json(anyIndex).as[T].parseToList
.The returned parser will fail if the first event is not an
ArrayStart
, or if any of the values inside the array cause the underlying parser to fail. E.g. if the underlying parser isJsonParser.forInt
, but one of the values in the array is a string, the exception thrown byJsonParser.forInt
will bubble up through the returned parser.E.g.
val parser = JsonParser.listOf[Int] parser.parse("[1, 2, 3]") // returns List(1, 2, 3) parser.parse("[]") // returns Nil parser.parse("42") // throws a SpacException parser.parse("[1, 2, false]") // throws a SpacException
- T
The type of the values inside the array
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses an array of values as a List[T]
- def nullable[T](implicit parser: JsonParser[T]): JsonParser[Option[T]]
Wraps an existing JsonParser, creating a new JsonParser that will succeed with
None
if it encounters anull
, or succeed with aSome(t)
if the wrapped parser succeeds.Wraps an existing JsonParser, creating a new JsonParser that will succeed with
None
if it encounters anull
, or succeed with aSome(t)
if the wrapped parser succeeds.Used to parse values that may or may not be null.
Typical usage would be
JsonParser.nullable[String]
, passing the underlyingJsonParser[String]
implicitly.- T
The type of the underlying parser's extracted value
- parser
The underlying parser which would typically fail upon encountering a
null
- returns
A JsonParser which parses
null
asNone
, or else delegates to the underlyingparser
- def nullableFieldOf[T](fieldName: String, parser: JsonParser[T])(implicit arg0: TypeName[T], callerPos: CallerPos): JsonParser[Option[T]]
A JsonParser that parses a JSON object by parsing the given optional field with the given
parser
.A JsonParser that parses a JSON object by parsing the given optional field with the given
parser
.Note that if the given
parser
is available implicitly, you can use the othernullableFieldOf
signature.Unlike with
fieldOf
, the returned parser will succeed with aNone
if the expected field is missing, or if the value in the expected field is null. However, it will still fail if the first event is not anObjectStart
.E.g.
val parser = JsonParser.nullableFieldOf("foo", JsonParser.forInt) parser.parse("{}") // returns None parser.parse("12") // throws a SpacException parser.parse("""{ "foo": 42 }""") // returns 42 parser.parse("""{ "foo": null }""") // returns null parser.parse("""{ "foo": "hello" }""") // throws a SpacException
- T
The type of the extracted value
- fieldName
The name of the field
- parser
The underlying parser used to parse the value inside the expected field in the object
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses the given field from a JSON object, wrapping a successfully-parsed value in
Some
, and treating null or a missing field asNone
- def nullableFieldOf[T](fieldName: String)(implicit arg0: TypeName[T], arg1: JsonParser[T], callerPos: CallerPos): JsonParser[Option[T]]
A JsonParser that parses a JSON object by parsing the given optional field with an implicitly-available
JsonParser[T]
.A JsonParser that parses a JSON object by parsing the given optional field with an implicitly-available
JsonParser[T]
.Unlike with
fieldOf
, the returned parser will succeed with aNone
if the expected field is missing, or if the value in the expected field is null. However, it will still fail if the first event is not anObjectStart
.E.g.
val parser = JsonParser.nullableFieldOf[Int]("foo") parser.parse("{}") // returns None parser.parse(12) // throws a SpacException parser.parse("""{ "foo": 42 }""") // returns 42 parser.parse("""{ "foo": null }""") // returns null parser.parse("""{ "foo": "hello" }""") // throws a SpacException
- T
The type of the extracted value
- fieldName
The name of the field
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses the given field from a JSON object, wrapping a successfully-parsed value in
Some
, and treating null or a missing field asNone
- def objectOf[T](parser: JsonParser[T])(implicit arg0: TypeName[T], callerPos: CallerPos): JsonParser[Map[String, T]]
A JsonParser that parses a JSON object by interpreting every field as a value of type
T
using the givenparser
, yielding aMap
containing the parsedfield -> value
pairs.A JsonParser that parses a JSON object by interpreting every field as a value of type
T
using the givenparser
, yielding aMap
containing the parsedfield -> value
pairs.Note that if the given
parser
is available implicitly, you can use the otherobjectOf
signature instead.This is a shortcut for
Splitter.json(anyField).map(field -> parser.map(field -> _)).parseToMap
.The returned parser will fail if the first event is not an
ObjectStart
, or if any of the field values in the object cause the underlying parser to fail. E.g. if the underlying parser isJsonParser.forString
, but one of the fields contains some non-string value, the exception thrown byJsonParser.forString
will bubble up through the returned parser.E.g.
val parser = JsonParser.objectOf(JsonParser.forInt) parser.parse("""{ "foo": 1, "bar": 2 }""") // returns Map("foo" -> 1, "bar" -> 2) parser.parse("""{ "foo": 1, "bar": "whoops" }""") // throws a SpacException parser.parse("13") // throws a SpacException
- T
The type of the values inside each field
- parser
The underlying parser used to parse each field in the object
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses an object as a
Map[String, T]
- def objectOf[T](implicit arg0: TypeName[T], arg1: JsonParser[T], callerPos: CallerPos): JsonParser[Map[String, T]]
A JsonParser that parses a JSON object by interpreting every field as a value of type
T
using the implicitly-availableJsonParser[T]
, yielding aMap
containing the parsedfield -> value
pairs.A JsonParser that parses a JSON object by interpreting every field as a value of type
T
using the implicitly-availableJsonParser[T]
, yielding aMap
containing the parsedfield -> value
pairs.This is a shortcut for
Splitter.json(anyField).map(field -> implicitly[JsonParser[T]].map(field -> _)).parseToMap
.The returned parser will fail if the first event is not an
ObjectStart
, or if any of the field values in the object cause the underlying parser to fail. E.g. if the underlying parser isJsonParser.forString
, but one of the fields contains some non-string value, the exception thrown byJsonParser.forString
will bubble up through the returned parser.E.g.
val parser = JsonParser.objectOf[Int] parser.parse("""{ "foo": 1, "bar": 2 }""") // returns Map("foo" -> 1, "bar" -> 2) parser.parse("""{ "foo": 1, "bar": "whoops" }""") // throws a SpacException parser.parse("13") // throws a SpacException
- T
The type of the values inside each field
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses an object as a
Map[String, T]
- def objectOfNullable[T](parser: JsonParser[T])(implicit arg0: TypeName[T], callerPos: CallerPos): JsonParser[Map[String, T]]
A JsonParser that parses a JSON object by interpreting every possibly-null field as a value of type
T
using the givenJsonParser[T]
, filtering out null fields and yielding aMap
containingfield -> value
pairs of the successfully-parsed fields.A JsonParser that parses a JSON object by interpreting every possibly-null field as a value of type
T
using the givenJsonParser[T]
, filtering out null fields and yielding aMap
containingfield -> value
pairs of the successfully-parsed fields.Note that if the given
parser
is available implicitly, you can use the otherobjectOfNullable
signature instead.Note that while fields with
null
instead of an expectedT
value are filtered out, non-null fields that cause the underlying parser to fail will cause the returned parser to fail as well. As withobjectOf
, the returned parser will fail if the first event is not anObjectStart
.E.g.
val parser = JsonParser.objectOfNullable(JsonParser.forInt) parser.parse("""{ "foo": 1, "bar": 2 }""") // returns Map("foo" -> 1, "bar" -> 2) parser.parse("""{ "foo": 1, "bar": null }""") // returns Map("foo" -> 1) parser.parse("""{ "foo": 1, "bar": "whoops" }""") // throws a SpacException parser.parse("13") // throws a SpacException
- T
The type of the values inside each field
- parser
The underlying parser used to parse values (aside from null) for each of the fields in the input object
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses an object as a
Map[String, T]
, ignoring fields withnull
values
- def objectOfNullable[T](implicit arg0: TypeName[T], arg1: JsonParser[T], callerPos: CallerPos): JsonParser[Map[String, T]]
A JsonParser that parses a JSON object by interpreting every possibly-null field as a value of type
T
using an implicitly-availableJsonParser[T]
, filtering out null fields and yielding aMap
containingfield -> value
pairs of the successfully-parsed fields.A JsonParser that parses a JSON object by interpreting every possibly-null field as a value of type
T
using an implicitly-availableJsonParser[T]
, filtering out null fields and yielding aMap
containingfield -> value
pairs of the successfully-parsed fields.Note that while fields with
null
instead of an expectedT
value are filtered out, non-null fields that cause the underlying parser to fail will cause the returned parser to fail as well. As withobjectOf
, the returned parser will fail if the first event is not anObjectStart
.E.g.
val parser = JsonParser.objectOfNullable[Int] parser.parse("""{ "foo": 1, "bar": 2 }""") // returns Map("foo" -> 1, "bar" -> 2) parser.parse("""{ "foo": 1, "bar": null }""") // returns Map("foo" -> 1) parser.parse("""{ "foo": 1, "bar": "whoops" }""") // throws a SpacException parser.parse("13") // throws a SpacException
- T
The type of the values inside each field
- callerPos
Macro-derived location of the code calling this method, used to form a SpacTraceElement when the returned parser fails
- returns
A JsonParser that parses an object as a
Map[String, T]
, ignoring fields withnull
values
- def toString(): String
- Definition Classes
- Any
Deprecated Value Members
- def →[B](y: B): (JsonParserApplyOps, B)
- Implicit
- This member is added by an implicit conversion from JsonParserApplyOps toArrowAssoc[JsonParserApplyOps] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.