fastJSon 무질서 문 제 를 어떻게 해결 합 니까?

873 단어 자바
개발 과정 에서 처음에는 이상 하 게 생각 했 던 상황 이 있 었 습 니 다.제 이 슨 을 하나의 맵 으로 해석 할 때 순서 가 뒤 바 뀌 는 경우 가 있 었 습 니 다.데이터 읽 기와 저장 이 잘못 되 지 않 았 지만 순서 가 뒤 바 뀌 어 개발 에서 특정 문 제 를 처리 할 때 도 골 치 아 픈 일이 있 었 습 니 다.그렇다면 왜 이런 상황 이 벌 어 졌 는 지,어떻게 이런 상황 이 발생 하 는 것 을 피 할 수 있 습 니까?
fastjson 소스 코드 를 추적 하여 com.alibaba.fastjson.parser.DefaultJSONparser 클래스 에서 475 줄 발견:
else if (ch == '{') { //     ,  android    
  
lexer.nextToken();    
  
final boolean parentIsArray = fieldName != null && fieldName.getClass() == Integer.class;    
  
JSONObject input = new JSONObject(lexer.isEnabled(Feature.OrderedField)); 

fastjson 에 서 는 Feature.OrderField 의 판단 을 할 것 입 니 다.json 을 분석 할 때 이 속성 을 추가 하면 json 이 분석 한 후 어 지 러 운 문 제 를 해결 할 수 있 습 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
HashMap m=  JSON.parseObject(json,LinkedHashMap.class,Feature.OrderedField);  

좋은 웹페이지 즐겨찾기