簡體   English   中英

如何使用scala util JSON解析器在scala中使用多行值解析Json

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM