Vor allem - Entschuldigung für dumme Frage. ich einige Json Zeichenfolge von DB bekam und wollen alle mit json4s analysieren:Wie Programm fortsetzen, wenn fangen JsonParse Fehler
val df = sqlContext.sql("SELECT * FROM analytic.test").repartition(22)
val df_base = df.map(f => {
implicit val formats = DefaultFormats
val jsonString = f(5).toString
val tempJSON = parse(jsonString)
val mainJsonArray = tempJSON \ "events"
(
f(2).toString,
makeEventArray(mainJsonArray)
)
}).cache()
alles gut, ich erhielt Json ist, aber manchmal in DB einige gescheitert Json auftritt, dass Sie mich treffen, um Fehler:
com.fasterxml.jackson.core.JsonParseException: Unexpected end-of-input: was expecting closing '"' for name
Erste Frage - Wie kann ich diese Zeile mit beschädigten Json umgehen und mein Programm fortsetzen?
versuche ich Surround Parse mit try \ fangen, aber in diesem Fall:
var tempJSON = json4s.JsonAST.JValue
try {
tempJSON = parse(f(5).toString)
} catch {
case e: Exception => println("Error on JSON parser. " + e)
}
Aber Fehler einnehmende:
Error:(51, 25) type mismatch;
found: org.json4s.JValue (which expands to) org.json4s.JsonAST.JValue
required: org.json4s.JsonAST.JValue.type tempJSON = parse(f(5).toString)
^
Zweite Frage - Wie tempJson Recht zu erklären?
Oder muss ich Json vor dem Parsen validieren? Wie?
Danke! Genau das, wonach ich suche – ANTVirGEO