Парсинг Json объекта Java (Spring boot, Rest)

126
16 декабря 2020, 18:00

При создании нового product'а мне понадобилось получить его название, но, при использовании метода getName(), я получаю например: Product@11123.

@RestController
@RequestMapping("/product")
public class ProductController {
    private final ProductRepository productRepository;
    @Autowired
    public ProductController(ProductRepository productRepository) {
        this.productRepository = productRepository;
    }
    // GET list items
    @GetMapping("")
    public Iterable<Product> readAll() {
        return productRepository.findAll();
    }
    @GetMapping("/{id}")
    public Product read(@PathVariable int id) {
        return productRepository.findById(id)
                .orElseThrow(() -> new RuntimeException("Not found"));
    }
    @PostMapping("")
    public Product create(@RequestBody Product newProduct) {
        newProduct.setModified(Calendar.getInstance().getTime());
        String name = newProduct.getName();
        return productRepository.save(newProduct);
    }

Сущность:

@Entity
@Table(name="products")
public class Product implements Serializable {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @NotNull
    private int id;
    @NotNull
    @Size(max=50)
    private String name;
    @NotNull
    @Size(max=150)
    private String description;
    @NotNull
    @Min(value = 0, message = "Must bigger than 0")
    @Max(value = Long.MAX_VALUE, message = "Must less than " + Long.MAX_VALUE)
    @Digits(integer = Integer.MAX_VALUE, fraction = 3)
    private double price;
    @NotNull
    @Min(value = 0)
    @Max(value = Long.MAX_VALUE, message = "Mus less than " + Long.MAX_VALUE)
    @Digits(integer = Integer.MAX_VALUE, fraction = 0)
    private int quantity = 0;
    @NotNull
    @Size(max = 150)
    private String thumbnail;
    @Column(name="is_valid")
    @NotNull
    private boolean isValid = true;
    @Temporal(TemporalType.TIMESTAMP)
    private Date modified;
    @ManyToOne
    @JoinColumn(name="category_id")
    private Category category;
    @ManyToOne
    @JoinColumn(name="supplier_id")
    private Supplier supplier;
    public Product(@NotNull @Size(max=50) String name, @NotNull @Size(max=150) String description, @NotNull @Min(value=0, message="Must bigger than 0") @Max(value=Long.MAX_VALUE, message="Must less than " + Long.MAX_VALUE) @Digits(integer=Integer.MAX_VALUE, fraction=3) double price, @NotNull @Min(value=0) @Max(value=Long.MAX_VALUE, message="Mus less than " + Long.MAX_VALUE) @Digits(integer=Integer.MAX_VALUE, fraction=0) int quantity, @NotNull @Size(max=150) String thumbnail, @NotNull boolean isValid, Date modified, Category category, Supplier supplier) {
        this.name=name;
        this.description=description;
        this.price=price;
        this.quantity=quantity;
        this.thumbnail=thumbnail;
        this.isValid=isValid;
        this.modified=modified;
        this.category=category;
        this.supplier=supplier;
    }
    public Product() {
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getQuantity() {
        return quantity;
    }
    public void setQuantity(int quantity) {
        this.quantity=quantity;
    }
    public String getThumbnail() {
        return thumbnail;
    }
    public void setThumbnail(String thumbnail) {
        this.thumbnail=thumbnail;
    }
    public boolean isValid() {
        return isValid;
    }
    public void setValid(boolean valid) {
        isValid=valid;
    }
    public Date getModified() {
        return modified;
    }
    public void setModified(Date modified) {
        this.modified=modified;
    }
    public Category getCategory() {
        return category;
    }
    public void setCategory(Category category) {
        this.category=category;
    }
    public Supplier getSupplier() {
        return supplier;
    }
    public void setSupplier(Supplier supplier) {
        this.supplier=supplier;
    }
}

JSON:

{
    "id": 1,
    "name": "444",
    "description": "44",
    "price": 44,
    "quantity": 44,
    "thumbnail": "https://cdn.tgdd.vn/Products/Images/42/179673/huawei-nova-3i-trang-chipu-400x400.jpg",
    "modified": 1557835543418,
    "category": {
        "id": 1,
        "name": "Смартфоны",
        "modified": 1557835525109,
        "valid": true
    },
    "supplier": {
        "id": 1,
        "name": "qwe",
        "company": "qwe",
        "address": "qwe",
        "city": "qwe",
        "phone": "213213123",
        "fax": "23131231231",
        "modified": 213123,
        "valid": true
    },
    "valid": false
}
READ ALSO
Java Client-Server [закрыт]

Java Client-Server [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

139
Очистить массив ArrayList&lt;ArrayList&lt;String[]&gt;&gt; из памяти

Очистить массив ArrayList<ArrayList<String[]>> из памяти

Подскажите пожалуйста, правильно ли я очищаю глобальные массивы из памяти, и надо ли это вообще делать?

113
Помогите разобраться с циклом (Iterator) для List

Помогите разобраться с циклом (Iterator) для List

У меня есть ArrayList box (коробка с фигурами)Мне нужно реализовать метод, который вытаскивает из коробки все круглые фигуры

121
Подключение библиотеки в IntelliJ IDEA

Подключение библиотеки в IntelliJ IDEA

Нашел библиотеку на GitHub https://githubcom/processing/processing-sound но не понимаю как подключить без jar файла, Maven не использую

117