-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
61 lines (34 loc) · 1.98 KB
/
Solution.java
File metadata and controls
61 lines (34 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//They marched across the breadth of the earth and surrounded the camp of God's people, the city he loves.
//But fire came down from heaven and devoured them. (Revelation 20:9)
package com.javarush.task.task33.task3312;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/*
Сериализация зоопарка
*/
public class Solution {
public static void main(String[] args) throws JsonProcessingException {
Zoo.Dog dog = new Zoo.Dog("doggy");
Zoo.Cat cat = new Zoo.Cat("catty");
Zoo zoo = new Zoo();
zoo.animals.add(dog);
zoo.animals.add(cat);
String result = new ObjectMapper().writeValueAsString(zoo);
System.out.println(result);
}
}
/*
Сериализация зоопарка
Сделай так, чтобы при сериализации объекта типа Zoo, каждому элементу списка animals был добавлен тип (dog для класса Dog, cat для класса Cat).
Для проверки можешь использовать метод main класса Solution.
Было:
{"animals":[{"name":"doggy","barkVolume":0.0},{"name":"catty","lives":0}]}
Должно стать:
{"animals":[{"type":"dog","name":"doggy","barkVolume":0.0},{"type":"cat","name":"catty","lives":0}]}
Требования:
1. Класс Zoo.Animal должен быть отмечен аннотацией @JsonTypeInfo.
2. Класс Zoo.Animal должен быть отмечен аннотацией @JsonSubTypes.
3. Класс Zoo.Dog должен быть отмечен аннотацией @JsonTypeName.
4. Класс Zoo.Cat должен быть отмечен аннотацией @JsonTypeName.
5. При сериализации в JSON всем объектам списка animals должен быть добавлен тип и сохранен основной формат (пример в задании).
*/