우선 - 어리석은 질문에 대한 죄송합니다. 내가 DB에서 일부 JSON 문자열을 얻고 json4s으로 그들 모두를 구문 분석 할 :catch하는 경우 프로그램을 계속하는 방법 JsonParse 오류
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()
모든 좋은, 내가 JSON의 가지고,하지만 때로는 DB는 일부 JSON 실패 발생에, 그 에러 데려다 :
com.fasterxml.jackson.core.JsonParseException: Unexpected end-of-input: was expecting closing '"' for name
첫 번째 질문 - 손상된 Json으로이 행을 피하고 프로그램을 계속 진행하려면 어떻게해야합니까?
나는 시도의 \ 캐치와 서라운드 구문 분석을 시도하지만,이 경우 :var tempJSON = json4s.JsonAST.JValue
try {
tempJSON = parse(f(5).toString)
} catch {
case e: Exception => println("Error on JSON parser. " + e)
}
그러나 오류 복용 :
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)
^
두 번째 질문 - tempJson를 잘 선언하는 방법?
아니면 구문 분석 전에 Json의 유효성을 검사해야합니까? 방법?
감사합니다. 정확히 내가 찾고있는 것 – ANTVirGEO