Удаление скобок и скобок из вывода JSON Java Джексона? - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать документ JSON с помощью Джексона.Иерархия выглядит следующим образом:

Событие:

class Event {
  private String name = "";
  private Set<Integer> admin = new HashSet<>();
  private List<House> houseList = new ArrayList<>();

  }

Дом:

class House {
  private List<OG> OGList = new ArrayList<>();
  private int score = 0;
  private String name = "";
}

Группа:

class OG {
  private int score = 0;
  private int id = 0;

}

Каждое событие может состоять иззаданное количество домов, которое, в свою очередь, состоит из заданного количества групп.В каждом доме и группе также есть модификатор счета.

В настоящее время я печатаю документ JSON с использованием довольно красивого метода печати:

    ObjectMapper mapper = new ObjectMapper();
    File f = new File("./db/" + dir);

    if (f.exists() && !f.isDirectory()) {
      return "This event name is taken. Please try again.";
    }
    try {
      mapper.writeValue(f, event);

      // Convert object to JSON string and pretty print
      String jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(event);
      System.out.println(jsonInString);
  }
}

Полученный результат выглядит довольно уродливо:

{
  "name" : "test",
  "admin" : [ 423766405 ],
  "houseList" : [ {
    "score" : 0,
    "name" : "first",
    "oglist" : [ {
      "score" : 0,
      "id" : 0
    }, {
      "score" : 0,
      "id" : 1
    }, {
      "score" : 0,
      "id" : 2
    } ]
  ..
}

Есть ли лучший способ отформатировать вывод, например:

name: 
  test
admin:
  a
  b
  c
  houses:
    name:
      first
      group:
        1
        ..

1 Ответ

0 голосов
/ 21 мая 2018

Похоже, что вы хотите вывести YAML , а не JSON .

Этот ответ показывает, как просто написать вывод YAMLв файл с помощью Jackson.

В этом ответе показано, как прочитать файл YAML, изменить его содержимое и снова сохранить его.

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