4
import scala.collection.mutable
5
import org.json4s.JsonAST._
7
object Parser extends SupportParser[JValue] {
9
implicit val facade: Facade[JValue] =
12
def jfalse() = JBool(false)
13
def jtrue() = JBool(true)
14
def jnum(s: String) = JDouble(java.lang.Double.parseDouble(s))
15
def jint(s: String) = JInt(java.lang.Integer.parseInt(s))
16
def jstring(s: String) = JString(s)
19
new FContext[JValue] {
20
var value: JValue = null
21
def add(s: String) { value = jstring(s) }
22
def add(v: JValue) { value = v }
23
def finish: JValue = value
24
def isObj: Boolean = false
28
new FContext[JValue] {
29
val vs = mutable.ListBuffer.empty[JValue]
30
def add(s: String) { vs += jstring(s) }
31
def add(v: JValue) { vs += v }
32
def finish: JValue = JArray(vs.toList)
33
def isObj: Boolean = false
37
new FContext[JValue] {
38
var key: String = null
39
val vs = mutable.ListBuffer.empty[JField]
40
def add(s: String): Unit =
41
if (key == null) key = s
42
else { vs += JField(key, jstring(s)); key = null }
43
def add(v: JValue): Unit =
44
{ vs += JField(key, v); key = null }
45
def finish: JValue = JObject(vs.toList)
46
def isObj: Boolean = true