blob: 89c72551d304b1142617ce9d5e2354f37bab3f18 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package scala.scalajs.tools.json
import scala.scalajs.tools.io.IO
import scala.scalajs.js
import java.io.{Writer, Reader}
private[json] object Impl extends AbstractJSONImpl {
type Repr = js.Any
def fromString(x: String): Repr = x
def fromNumber(x: Number): Repr = x.doubleValue()
def fromBoolean(x: Boolean): Repr = x
def fromList(x: List[Repr]): Repr = js.Array(x: _*)
def fromMap(x: Map[String, Repr]): Repr = js.Dictionary(x.toSeq: _*)
def toString(x: Repr): String = x.asInstanceOf[String]
def toNumber(x: Repr): Number = x.asInstanceOf[Double]
def toBoolean(x: Repr): Boolean = x.asInstanceOf[Boolean]
def toList(x: Repr): List[Repr] = x.asInstanceOf[js.Array[Repr]].toList
def toMap(x: Repr): Map[String, Repr] =
x.asInstanceOf[js.Dictionary[Repr]].toMap
def serialize(x: Repr): String = js.JSON.stringify(x)
def serialize(x: Repr, writer: Writer): Unit =
writer.write(serialize(x))
def deserialize(str: String): Repr = js.JSON.parse(str)
def deserialize(reader: Reader): Repr =
deserialize(IO.readReaderToString(reader))
}
|