[英]how to parse Json with multi-line values in scala using scala util JSON parser
目前我正在使用下面的代碼來讀取配置文件並將其解析為 JSON。
val fileContent= scala.io.Source.fromFile(<file-path>)
val jsonText= fileContent.getLines.mkString("\n")
val parsedJsonText = JSON.parseFull(jsonText).get.asInstanceOf[Map[String,Any]]
Json 文件的示例內容:
{
"hiveDB" : "db1",
"hiveTbl" : "T1",
"hiveQuery" : " select * from db2.T2 where somecol='whereCond' ",
"option" : "load"
}
此 JSON 解析適用於上述給定的文件內容。 然而,有時hiveQuery標簽可能有一個相當大的查詢,並且這個標簽的值可以在多行中,即它可能有換行符並在關閉雙引號(“)之前跨多行展開。示例:
"hiveQuery" : " select col1, \\line separator
concat_ws("-", col1, col2) as col12, \\line separator
concat(col3,col4) as col34 \\newline separator
from db2.T3 join db4.T5 \\newline separator
on T3.col1=T5.col1"
讀取上述格式化文件時,在 JSON 解析過程中失敗。
如果我可以在我的代碼中進行任何合適的調整,請提供幫助。
一種快速的方法是首先刪除換行符:
代替:
val jsonText= fileContent.getLines.mkString("\n")
和:
val jsonText= fileContent.getLines.mkString
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.