Как преобразовать сложную строку JSON в MAP в Scala

ADARSH K спросил: 11 марта 2019 в 07:30 в: java

У меня есть текстовый файл, который содержит строку типа

Players = {"Messi": {"Details": {"Goals": 500},"Country":"Argentina" },"Neymar": {"Clubs": ["Santos","FC barcelona","Paris Saint German"],"Country":"Brazil"}}

Теперь я я использую регулярное выражение для извлечения

{"Messi": {"Details": {"Goals": 500},"Country":"Argentina"},"Neymar": {" Клубы": [" Santos"," FC barcelona"," Paris Saint Saint German"]," Country":" Brazil"}}

из текстового файла и передайте его в класс case, который принимает значение как String.

, и я делаю Dataframe с использованием этого класса case.

В моем случае каждая строка может отличаться в содержании с в JSON String. Поэтому я ищу общее решение для преобразования любой сложной строки Json в значения Map.

При проверке dataframe.printSchema я получаю столбец Players как тип String. Но мне нужно, чтобы он был как тип Map, который содержит ключ и значение как тип Struct. Я попробовал метод, указанный в этой ссылке

Как я могу конвертировать строка json для карты scala?

, когда я использовал этот способ, я получил ошибку

"org.json4s.package $ MappingException: не знаю как преобразовать JObject (List ((Details, JObject (List ((Goals, JString (500))))), (Country, JString (Argentina)))) в класс java.lang.String"

и я использовал следующие решения

Преобразование строки JSON в объект JSON в Scala

Но они тоже выиграли ' Это сработало для меня.

Это мой класс кейсов

case class caseClass (
                       Players :String = ""
                     )

Я извлекаю строку json, используя пользовательскую функцию.

Просто мое требование состоит в том, чтобы у меня была сложная строка Json, которая содержит ключи и значения в виде struct, list и т. Д.

, поэтому я хочу сделать строку соответствующей ей JSON, которая содержит правильную схему относительно ее содержание.

Пожалуйста, ожидайте ценные решения.

0 ответов