Scala: Как преобразовать xml Elem со смешанными тегами в строку JSON? - PullRequest
0 голосов
/ 19 марта 2019

Я хочу преобразовать ниже объект XML,

val xml = <body>
    <para>first</para>
    <para>second</para>
    <sometag>xyz</sometag>
</body>

в JSON

{"body":{"para":["first","second"],"sometag":"xyz"}}

Я пробовал ниже библиотеки scala,

1.net.liftweb |Лифт-JSON_2.11 |3.3.0

import net.liftweb._

import net.liftweb.json.Xml.XmlNode

import net.liftweb.json.Xml

import net.liftweb.json._


println("JSON STRING" + compactRender(toJson(xml)))

output: {"body": {"para": "first", "para": "second", "sometag": "xyz"}}

2.org.json4s |json4s-xml_2.11 |3.6.5

import org.json4s.Xml.{ toJson, toXml }

import org.json4s._

import org.json4s.JsonDSL._

import org.json4s.native.JsonMethods.{ render, pretty, compact }


println("JSON String:" + compact(render(toJSON(xml))))

output: {"body": {"para": "first", "para": "second", "sometag": "xyz"}}

в обоих случаях я вижу дубликаты ключей (обратите внимание, что пара отображается дважды), что недопустимо в JSON.Скорее, я ожидаю, что если в документе XML виден дублирующий тег XML, преобразователь должен поместить эти значения в массив, как показано ниже

{"body":{"para":["first","second"],"sometag":"xyz"}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...