Spring Jackson은 JSON 객체를 구문 분석 할 수 없습니다.

피터 코즐 로프 스키

엔티티 사용자가 있습니다.

    public class Users implements Serializable {
        private Long id;
        private String password;
        private String email;
        private Boolean enabled;
        private String name;
        private String lastname;
        private String userRole;
        private String secondName;
        private String telephone;
        private String automobile;
        private List<Claim> claims;
        private List<Orders> ordersList;
    // getters and setters
}

사용자는 많은 클레임과 주문이 있습니다. 그리고 이와 같은 내 컨트롤러 방법

  @RequestMapping(value = "get", method = GET)
    public
    @ResponseBody
    Users get() {
        return ((CustomUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUserInfo();
    }

그런 다음 사용자를 얻으려고하면이 오류가 발생합니다.

    com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:694)
        at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)
        at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672)
//etc

내 모든 엔터티는 Serializible 인터페이스를 구현합니다. 근데 이렇게 해보면

 @RequestMapping(value = "get", method = GET)
    public
    @ResponseBody
    Users get() {

        Users users = ((CustomUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUserInfo();
        users.setClaims(null);
        users.setOrdersList(null);
        return users;

    }

그리고 그것은 작동합니다. 나는 이와 같은 json 문자열을 얻습니다.

{
  "id" : 7,
  "password" : "$2a$11$IDMDPHQNiNEs9NP282zrGe3rn8la5WL8aR.RY3IFFa8y0NJc9ubdS",
  "email" : "[email protected]",
  "enabled" : true,
  "name" : "Alex",
  "lastname" : "Zhukov",
  "userRole" : "ROLE_USER",
  "secondName" : null,
  "telephone" : "89274455166",
  "automobile" : "MercedesW222",
  "claims" : null,
  "ordersList" : null
}

내가 도대체 ​​뭘 잘못하고있는 겁니까? 내 pom.xml

 <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>RELEASE</version>
        </dependency>

업데이트 된 클레임 및 주문 엔터티

   public class Orders implements Serializable {
        private Long id;
        private String status;
        private String address;
        private Timestamp fDate;
        private Integer sum;
        private Users users;
        private List<OrdersProducts> ordersProductsList;
//getters and setters
}
public class Claim implements Serializable {
    private Long id;
    private Timestamp fDate;
    private String reason;
    private String status;
    private String response;
    private Users user;
    private Integer sum;
    //getters and setters
    }

분명히 그는 깊은 재귀에 들어갑니다. 사용자는 많은 클레임과 주문을 가지고 있으며 주문 및 클레임은 사용자에게 속합니다. 그리고 무한대까지. 하지만 다시이 경우에는 클레임 ​​및 주문을 null로 설정해야합니까?

kurt_vonnegut

엔티티에 대한 순환 참조가 있습니다. @JsonIdentityInfo 주석을 살펴보십시오. 그리고 아마도 아래 솔루션이 도움이 될 수 있습니다.

@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class Claim implements Serializable {}

@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class Orders implements Serializable {}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 객체 (Android)를 구문 분석 할 수 없습니다.

분류에서Dev

StringBuilder Android에서 json 객체를 구문 분석 할 수 없습니다.

분류에서Dev

Retrofit 2.0은 Json 중첩 개체를 구문 분석 할 수 없습니다.

분류에서Dev

android, gson은 json 문자열을 java 객체로 구문 분석 할 수 없습니다.

분류에서Dev

Jackson은 List <Long>을 구문 분석 할 수 없습니다.

분류에서Dev

JSON을 Javascript 개체로 구문 분석 할 수 없습니다.

분류에서Dev

json 데이터를 구문 분석 할 수 없습니다.

분류에서Dev

복잡한 jsonarray 및 Json 객체를 포함하는 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

JSON 파일을 구문 분석 할 수 없습니다. JSON 개체를 디코딩 할 수 없습니다.

분류에서Dev

중첩 된 JSON 개체를 구문 분석 할 수 없습니다.

분류에서Dev

Gson이 Array를 구문 분석 할 수 없습니다. 하지만 그것은 json 배열입니다

분류에서Dev

json.net-중첩 된 객체를 구문 분석 할 수 없음

분류에서Dev

Spring은 유효한 LocalDateTime을 구문 분석 할 수 없습니다.

분류에서Dev

RestTemplate에서받은 JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

이 Json 객체를 Java 객체로 어떻게 구문 분석 할 수 있습니까?

분류에서Dev

PHP Foreach로 JSON 데이터를 구문 분석 할 수 없습니다.

분류에서Dev

Android는 단일 json 요소를 구문 분석 할 수 없습니다.

분류에서Dev

dojo를 사용하여 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

분류에서Dev

Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

분류에서Dev

서버에서 JSON 데이터를 구문 분석 할 수 없습니다.

분류에서Dev

JSON 데이터를 올바르게 구문 분석 할 수 없습니다.

분류에서Dev

JSON 데이터를 .NET DateTime으로 구문 분석 할 수 없습니다.

분류에서Dev

NewtonSoft JSONConvert를 사용하여 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

파이썬이 JSON 데이터를 구문 분석 할 수 없습니다.

분류에서Dev

Javascript가 ObjectMapper 객체에 의해 생성 된 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

Pandas로 JSON 파일을 구문 분석 할 수 없습니다.

분류에서Dev

ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

Related 관련 기사

  1. 1

    JSON 객체 (Android)를 구문 분석 할 수 없습니다.

  2. 2

    StringBuilder Android에서 json 객체를 구문 분석 할 수 없습니다.

  3. 3

    Retrofit 2.0은 Json 중첩 개체를 구문 분석 할 수 없습니다.

  4. 4

    android, gson은 json 문자열을 java 객체로 구문 분석 할 수 없습니다.

  5. 5

    Jackson은 List <Long>을 구문 분석 할 수 없습니다.

  6. 6

    JSON을 Javascript 개체로 구문 분석 할 수 없습니다.

  7. 7

    json 데이터를 구문 분석 할 수 없습니다.

  8. 8

    복잡한 jsonarray 및 Json 객체를 포함하는 JSON을 구문 분석 할 수 없습니다.

  9. 9

    JSON 파일을 구문 분석 할 수 없습니다. JSON 개체를 디코딩 할 수 없습니다.

  10. 10

    중첩 된 JSON 개체를 구문 분석 할 수 없습니다.

  11. 11

    Gson이 Array를 구문 분석 할 수 없습니다. 하지만 그것은 json 배열입니다

  12. 12

    json.net-중첩 된 객체를 구문 분석 할 수 없음

  13. 13

    Spring은 유효한 LocalDateTime을 구문 분석 할 수 없습니다.

  14. 14

    RestTemplate에서받은 JSON 응답을 구문 분석 할 수 없습니다.

  15. 15

    이 Json 객체를 Java 객체로 어떻게 구문 분석 할 수 있습니까?

  16. 16

    PHP Foreach로 JSON 데이터를 구문 분석 할 수 없습니다.

  17. 17

    Android는 단일 json 요소를 구문 분석 할 수 없습니다.

  18. 18

    dojo를 사용하여 JSON을 구문 분석 할 수 없습니다.

  19. 19

    Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

  20. 20

    Android json 구문 분석 오류-JSONArray를 JSONObject로 변환 할 수 없습니다.

  21. 21

    서버에서 JSON 데이터를 구문 분석 할 수 없습니다.

  22. 22

    JSON 데이터를 올바르게 구문 분석 할 수 없습니다.

  23. 23

    JSON 데이터를 .NET DateTime으로 구문 분석 할 수 없습니다.

  24. 24

    NewtonSoft JSONConvert를 사용하여 JSON을 구문 분석 할 수 없습니다.

  25. 25

    파이썬이 JSON 데이터를 구문 분석 할 수 없습니다.

  26. 26

    Javascript가 ObjectMapper 객체에 의해 생성 된 JSON을 구문 분석 할 수 없습니다.

  27. 27

    Pandas로 JSON 파일을 구문 분석 할 수 없습니다.

  28. 28

    ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

  29. 29

    ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

뜨겁다태그

보관