Gson в Json экранирует поля, которые являются Option - PullRequest
0 голосов
/ 11 марта 2020

У меня есть класс дел, подобный этому:

case class TotalTest(f1: Option[String], f2: Option[String], f3: String)

Используя Gson, я пытаюсь записать содержимое в файл Json, вот что я получаю:


val test1 = (new Gson).toJson(TotalTest(Some("a"), Some("b"), "c"))
val pw1 = new PrintWriter(new File("test1.json" ))
pw1.write(test1)
pw1.close

Содержимое будет:

{"f1":{},"f2":{},"f3":"c"}

Почему я потеряю первые два поля? По сути, у меня очень вложенный объект класса case с большим количеством Option s, и я задаюсь вопросом, как легко извлечь результаты.

Смежный вопрос

1 Ответ

0 голосов
/ 11 марта 2020

Благодаря этому ответу мы можем использовать Circe:

import io.circe.generic.auto._
import io.circe.parser._
import io.circe.syntax._

val totalTest = TotalTest(Some("a"), Some("b"), "c")
val pw1 = new PrintWriter(new File("test1.json" ))
pw1.write(totalTest.asJson.noSpaces)
pw1.close

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