wjson

package wjson

Members list

Concise view

Type members

Classlikes

object Eval

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Eval.type
object JSON extends Object

Attributes

Graph
Supertypes
class Object
trait Any
class Object
trait Matchable
class Any
Self type
JSON.type
object JsModule

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Json Pattern DSL

Json Pattern DSL

Attributes

Companion:
object
Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object JsPattern

Attributes

Companion:
enum
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
class JsPatternParser extends RegexParsers

Attributes

Companion:
object
Graph
Supertypes
trait RegexParsers
trait Parsers
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
enum JsValue

Json Model ADT

Json Model ADT

Attributes

Companion:
object
Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object JsValue

Attributes

Companion:
enum
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
JsValue.type
trait JsValueMapper[T]

type class for JsValue Mapping

type class for JsValue Mapping

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Best Practice for Case Class Json Mapping:

Best Practice for Case Class Json Mapping:

  1. make the case class derives JsValueMapper.
  2. or declare a given JsValueMaper[T] for the case class

otherwise, every time you use API which using a JsValueMapper[T], a new JsValueMapper[T] will be created via the JsValueMapper.given_JsValueMapper_T macro. this is an expensive operation, every macro expansion will generate an anonumous implementation class. so, there will be a lot of classes in the compilation and increase the compile time, the output jar file will be large.

Attributes

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

Macro to generate a JsValueMapper for a given case class.

Macro to generate a JsValueMapper for a given case class.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
class JsonInterpolation(sc: StringContext)

Created by wangzx on 15/7/6.

Created by wangzx on 15/7/6.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
object JsonParser

Fast, no-dependency parser for JSON as defined by http://tools.ietf.org/html/rfc4627.

Fast, no-dependency parser for JSON as defined by http://tools.ietf.org/html/rfc4627.

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
class JsonParser(input: ParserInput, jsonExtensionSupport: Boolean)

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
class RejsonInterpolation(sc: StringContext)

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class RejsonMatcher(pattern: Variable)

rejson is a pattern language for JSON

rejson is a pattern language for JSON

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Extensions

Extensions

extension (js: JsValue)
inline def convertTo[T : JsValueMapper]: T
extension [T](obj: T)
inline def toJson(implicit evidence$1: JsValueMapper[T]): JsValue
extension (sc: StringContext)
extension (str: String)
def parseJson(extension: Boolean): JsValue

Exports

Defined exports

final type JsArray = JsArray
Exported from JsValue$
final type JsBoolean = JsBoolean
Exported from JsValue$
final type JsNumber = JsNumber
Exported from JsValue$
final type JsObject = JsObject
Exported from JsValue$
final type JsString = JsString
Exported from JsValue$