Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class JSONParser extends JavaTokenParsers {
- def obj: Parser[Map[String, Any]] =
- "{" ~> repsep(member, ",") <~ "}" ^^ (Map() ++ _)
- def arr: Parser[List[Any]] =
- "[" ~> repsep(value, ",") <~ "]"
- def member: Parser[(String, Any)] =
- stringLiteral ~ ":" ~ value ^^ { case name ~ ":" ~ value => (name, value) }
- def value: Parser[Any] =
- obj |
- arr |
- stringLiteral |
- floatingPointNumber ^^ (_.toDouble) |
- "null" ^^ (x => null) |
- "true" ^^ (x => true) |
- "false" ^^ (x => false)
- def apply(input: String): Option[Any] = parseAll(value, input) match {
- case Success(result, _) => Some(result)
- case Failure(msg, _) =>
- println(s"Error: $msg")
- None
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement