저는 원래 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 메서드를 다시 생성하세요:
올바른 속성에 대해, 다음 이미지에서 보듯이 디직렬라이즈가 성공합니다:
|