이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 18884|회답: 1

[출처] Fastjson JSONField deserialization invalid solution

[링크 복사]
게시됨 2019. 1. 11. 오전 10:51:31 | | | |
저는 원래 json 문자열이 모두 a, b, c... 순서였기 때문에 Alibaba의 Fastjson을 사용해 객체를 직렬화하고 역직렬화했습니다. 이런 문자들은 표현되어 있지만, 객체로 직렬화하고, 객체를 그런 의미 없는 속성으로 정의할 수 없습니다.
여기서는 JSONField 주석이 사용됩니다.

필드를 켜는 방법과 겟 세트 방법의 차이@JSONField

  • 필드는 직렬화와 역직렬화 연산을 모두 명시합니다
  • 직렬화 시 연산을 지정하는 get에 설정하세요
  • set은 디직렬화 시 연산을 지정합니다



사용 후에는 정상적으로 직렬화할 수 있지만, 아래 그림에서 보듯이 정상적으로 직렬 해제는 불가능합니다:


json 문자열:

{"a":"shenzhou","b":"Jing Q7UB02","c":110000,"d":"2019-01-08T17:07:04+08:00","e":120.775085,"f":30.13825,"g":77,"h":171,"i":0,"j":4951,"k":2,"l":0,"m":0,"n":4,"o":"0","p" :1}


오류 원인:

객체의 성질은 자바의 '혹' 명명법을 따르지 않으며, 첫 번째 단어를 제외한 모든 단어가 대문자로 표기됩니다. 예를 들어

in의 myStudentCount;
변수 myStudentCount는 모두 소문자이며, 단어의 첫 글자는 대문자로 표기합니다.

용액:

객체 속성 이름을 수정하고 다음 코드로 get/set 메서드를 다시 생성하세요:

올바른 속성에 대해, 다음 이미지에서 보듯이 디직렬라이즈가 성공합니다:







이전의:직장 전자책
다음:PFD 형식은 다른 책들과도 혼합되어 있습니다
 집주인| 게시됨 2019. 1. 14. 오후 4:29:58 |
저는 fastjson을 포기하고 Jackson으로 바꿨는데, 알리바바의 오픈 소스를 접하게 되었습니다.
사용 방법은 다음과 같습니다:

pop.xml



JAVA 객체 to JSON [JSON 직렬화]



JSON to Java 클래스 [JSON 역직렬화]



면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com