2016-04-26 50 views
0

我想解析某些點符號映射到一個JSON字符串,比如我有:的Java/Scala的LIB解析點標記,以JSON字符串

input["top.second.third0"] = 0 
input["top.second.third1"] = "hello" 

然後,我想下面的JSON字符串從這張地圖:

{"top":{ 
    "second":{ 
     "third0":0, 
     "third1":"hello" 
     } 
    } 
} 

我知道如何通過使用拆分生成它,我問是否有一個Java/Scala庫可以爲我做到這一點?

回答

0

對於播放JSON,您可以將此表達式解析爲JsPath然後使用它。

import play.api.libs.json._ 

val components = input.split("\\.") 

components.headOption match { 
    case Some(p) => components.tail.foldLeft(JsPath \ p) { _ \ _ } 
    case _ => /* cannot parse */ ??? 
} 
+0

非常感謝,我會試試這個。 –

0

我這樣做是爲了完成這個任務。

val input = "a.b.c" 
    val components = input.split("\\.") 

    val jsPath = components.headOption match { 
    case Some(p) => components.tail.foldLeft(JsPath \ p) { _ \ _ } 
    case _ => /* cannot parse */ ??? 
    } 
    val obj = JsPath.createObj(jsPath -> JsString("Hello")) 
    Logger.debug("after write" + obj.toString) 

我不知道爲什麼,但似乎每個人都在使用play如果你使用scala。