К слову я не понимаю почему тут файл .java, а не .class как обычно
package com.javarush.task.task33.task3301;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
/*
Первая сериализация в JSON
*/
public class Solution {
public static void main(String[] args) throws IOException {
Cat cat = new Cat();
cat.name = "Murka";
cat.age = 5;
cat.weight = 3;
Dog dog = new Dog();
dog.name = "Killer";
dog.age = 8;
dog.owner = "Bill Jeferson";
ArrayList<Pet> pets = new ArrayList<>();
pets.add(cat);
pets.add(dog);
StringWriter writer = new StringWriter();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(writer, pets);
System.out.println(writer.toString());
//[{"name":"Murka","age":5,"weight":3},{"name":"Killer","age":8,"owner":"Bill Jeferson"}]
}
public static void convertToJSON(StringWriter writer, Object object) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(writer, object);
}
@JsonAutoDetect
public static class Pet {
String name;
}
@JsonAutoDetect
public static class Cat extends Pet {
int age;
int weight;
}
@JsonAutodetect
public static class Dog extends Pet {
int age;
String owner;
}
}