Простой JSON в XML и затем XML в JSON с использованием Scala - PullRequest
1 голос
/ 07 февраля 2012

Я ищу собственное решение Scala, чтобы изменить это:

{"name":"jack","greeting":"hello world"}

в это:

<person>
  <name>jack</name>
  <greeting>hello world</name>
</person>

и обратно (XML обратно в JSON).

Я понимаю, что есть библиотеки Java, которые я могу использовать, чтобы помочь мне, но это должно быть простой проблемой, и в стремлении лучше понять Scala и функциональное программирование, мне бы очень хотелось посмотреть, как это сделать. с простой Scala.

Аналогичные вопросы задавались для многих других языков в StackOverflow, поэтому наличие равных в Scala сделает ссылку более полной.

1 Ответ

2 голосов
/ 07 февраля 2012

Я думаю, самое простое решение было бы что-то вроде этого:

val json = """{"name":"jack","greeting":"hello world"}""";


val jpattern = """\{"name":"(.*)","greeting":"(.*)"\}""".r;

print (json match {
  case jpattern(n,g) => <person><name>{n}</name><greeting>{g}</greeting></person>;
  case _ => ()
})



val xml = <person><name>jack</name><greeting>greeting</greeting></person>

print (xml match {
  case <person><name>{n}</name><greeting>{g}</greeting></person> => """{"name":"%s","greeting":"%s"}""".format(n,g);
  case _ => ()
})

это, вероятно, можно сделать более общим способом и с классами case для поддержки лучшего синтаксиса match для варианта xml2json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...