Bonjour,

Je suis entrain de faire une application JAVA avec une API Rest et je rencontre un petit problème.

Le JSON de mon API n'est pas valide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
[
    [
        1,
        "FRJEADUP",
        "Jean",
        "DUPOND"
    ]
]
Je ne comprend pas vraiment pourquoi et comment cela se fait... si quelqu'un aurai une réponse ?

PS : J'utilise une architecture en oignon avec du CQRS et des ValueObjects.

Voici tout mon code :

CustomerController
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@CrossOrigin("*")
@RestController
public class CustomerController {
 
    @Autowired
    private CustomerRepository repository;
 
    @ResponseBody
    @GetMapping(path = "/GetCustomers", produces = "application/json")
    public ResponseEntity<List<Customer>> getCustomers() {
        var GetAllCustomers = new GetAllCustomers(repository);
        return ResponseEntity.ok(GetAllCustomers.Do());
    }
 
}
ICustomerRepository
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public interface ICustomerRepository {
 
    List<Customer> GetAll();
 
    void Add(Customer customer);
}
GetAllCustomers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class GetAllCustomers {
 
    private ICustomerRepository _Repository;
 
    public GetAllCustomers(ICustomerRepository Repository) {
        _Repository = Repository;
    }
 
    public List<Customer> Do() {
        return _Repository.GetAll();
    }
}
CustomerRepository
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Repository
public class CustomerRepository implements ICustomerRepository {
 
    @Autowired
    EntityManager entityManager;
 
    @SuppressWarnings("unchecked")
    @Override
    public List<Customer> GetAll() {
        try {
            String SQL = "SELECT ID, LOGIN, FOR_NAME, LAST_NAME FROM CUSTOMER";
            Query query = entityManager.createNativeQuery(SQL);
 
            List<Customer> customers = query.getResultList();
 
            return customers;
        } catch (NoResultException e) {
            return null;
        }
 
    }
}
Customer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
private int _ID;
 
    private Login _Login;
 
    private ForName _ForName;
 
    private LastName _LastName;
 
    public Customer(Login Login, ForName ForName, LastName LastName) {
        _Login = Login;
        _ForName = ForName;
        _LastName = LastName;
    }
 
    public Customer(int ID, Login Login, ForName ForName, LastName LastName) {
        _ID = ID;
        _Login = Login;
        _ForName = ForName;
        _LastName = LastName;
    }
 
    public int getID() {
        return _ID;
    }
 
    public String getLogin() {
        return _Login.getValue();
    }
 
    public String getForName() {
        return _ForName.getValue();
    }
 
    public String getLastName() {
        return _LastName.getValue();
    }
 
    @Override
    public String toString() {
        return getID() + " " + getLogin() + " " + getForName() + " " + getLastName();
    }
Login
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class Login {
 
    private String _Value;
 
    public Login(String Value) {
        _Value = Value;
    }
 
    public String getValue() {
        return _Value;
    }
}
ForName
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class ForName {
 
    private String _Value;
 
    public ForName(String Value) {
        _Value = Value;
    }
 
    public String getValue() {
        return _Value;
    }
}
LastName
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class LastName {
 
    private String _Value;
 
    public LastName(String Value) {
        _Value = Value;
    }
 
    public String getValue() {
        return _Value;
    }
}
Je sais qu'il y a beaucoup de classe et que ce n'est pas forcement simple à comprendre du premier regard..

En espérant que quelqu'un pourra m'aider.

WiZarD67