I have a Scala model
case class Model(
name: String,
site: String,
phones: Seq[String],
duration: String,
pricePerMonth: Double,
address: String,
benefits: Seq[String],
rating: Int
)
for json
{
"name": "a",
"site": "b",
"phones": ["c"],
"duration": "d",
"price-per-month": 10.00,
"address": "e",
"benefits": ["f"],
"rating": 1
}
Here is my SBT dependencies:
"com.typesafe.play" %% "play-json" % "2.3.4"
I want to parse json using Play. And here is my code:
val model = fromInputStream { getClass getResourceAsStream "/model.json"
} getLines() toString
val json: JsValue = Json.parse(model)
But I get an error
Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'non': was expecting 'null', 'true', 'false' or NaN
at [Source: java.io.StringReader@a7e666; line: 1, column: 4]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1524)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:557)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2042)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2018)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._matchToken(ReaderBasedJsonParser.java:1870)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:657)
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3031)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:2951)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1587)
at play.api.libs.json.JacksonJson$.parseJsValue(JsValue.scala:486)
at play.api.libs.json.Json$.parse(Json.scala:19)
Any ideas how can I fix this error?
modelgiven to Json.parse. Use a debugger or simply println and I bet you quickly see what's wrong with your JSON and why Jackson blew up. - cbleymodel.json? - The Archetypal PaulmkStringinstead ofgetLines().toString()to make actually a string but not an iterator. - Alex