summaryrefslogtreecommitdiff
path: root/tools/jvm/src/main/scala/scala/scalajs/tools/json/Impl.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tools/jvm/src/main/scala/scala/scalajs/tools/json/Impl.scala')
-rw-r--r--tools/jvm/src/main/scala/scala/scalajs/tools/json/Impl.scala38
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/jvm/src/main/scala/scala/scalajs/tools/json/Impl.scala b/tools/jvm/src/main/scala/scala/scalajs/tools/json/Impl.scala
new file mode 100644
index 0000000..ea847e3
--- /dev/null
+++ b/tools/jvm/src/main/scala/scala/scalajs/tools/json/Impl.scala
@@ -0,0 +1,38 @@
+package scala.scalajs.tools.json
+
+import org.json.simple.JSONValue
+
+import scala.collection.JavaConverters._
+
+import java.io.{Writer, Reader}
+
+private[json] object Impl extends AbstractJSONImpl {
+
+ type Repr = Object
+
+ def fromString(x: String): Repr = x
+ def fromNumber(x: Number): Repr = x
+ def fromBoolean(x: Boolean): Repr = java.lang.Boolean.valueOf(x)
+ def fromList(x: List[Repr]): Repr = x.asJava
+ def fromMap(x: Map[String, Repr]): Repr = x.asJava
+
+ def toString(x: Repr): String = x.asInstanceOf[String]
+ def toNumber(x: Repr): Number = x.asInstanceOf[Number]
+ def toBoolean(x: Repr): Boolean =
+ x.asInstanceOf[java.lang.Boolean].booleanValue()
+ def toList(x: Repr): List[Repr] =
+ x.asInstanceOf[java.util.List[Repr]].asScala.toList
+ def toMap(x: Repr): Map[String, Repr] =
+ x.asInstanceOf[java.util.Map[String, Repr]].asScala.toMap
+
+ def serialize(x: Repr): String =
+ JSONValue.toJSONString(x)
+
+ def serialize(x: Repr, writer: Writer): Unit =
+ JSONValue.writeJSONString(x, writer)
+
+ def deserialize(str: String): Repr = JSONValue.parse(str)
+
+ def deserialize(reader: Reader): Repr = JSONValue.parse(reader)
+
+}