【发布时间】:2012-02-22 03:28:54
【问题描述】:
我一直在与在 Scala 中解析 JSON 字符串的函数式方法的概念作斗争,并在返回 Option(something) 的情况下遇到了问题。我popped the question和有用的答案进来了。
问题是,作为一个刚接触 Scala 的人,正确的方法是什么?
目前我正在这样做:
import util.parsing.json.JSON._
object JsonSoap {
def main(args: Array[String]) {
val x = parseFull("""{"name":"Joe","surname":"SOAP"}""")
val y = x collect {
case m: Map[_, _] => m collect {
case (key: String, value: String) => key -> value
}
}
val z = for (m <- y; name <- m.get("name"); surname <- m.get("surname"))
yield {
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Person>
<Name>{name}</Name>
<Surname>{surname}</Surname>
</Person>
</soap:Body>
</soap:Envelope>
}
println(z)
}
}
我仍然坚持使用 Some()
有没有很好的模式来解决我的问题?当然,这必须是很好探索的领域。如何改进我的代码?
【问题讨论】:
标签: scala