prosource

org.json.JSONObject와 Gson 라이브러리 JsonObject

probook 2023. 3. 29. 21:36
반응형

org.json.JSONObject와 Gson 라이브러리 JsonObject

이 두 계급의 차이점은 무엇입니까?

누군가 Gson 라이브러리를 사용하는 경우, 그 이상 사용하는 것이 더 좋습니까?

이 두 가지 선택지의 장단점을 나열할 수 있는 사람이 있나요?

주요 차이점은 다음과 같습니다.

1) GSON은 오브젝트 정의를 사용하여 원하는 유형의 오브젝트를 직접 작성할 수 있습니다.JSONObject를 수동으로 구문 분석해야 합니다.

2) org.json은 단순한 트리 스타일의 API입니다.가장 큰 약점은 전체 JSON 문서를 구문 분석하기 전에 문자열에 로드해야 한다는 것입니다.대규모 JSON 문서의 경우 이는 비효율적일 수 있습니다.

3) org.json 구현의 가장 큰 약점은 JSONException입니다.JSON의 모든 물건 주위에 Try/Catch Block을 배치해야 하는 것은 편리하지 않습니다.

4) Gson은 Android에서 JSON 파싱에 가장 적합한 API입니다.매우 작은 바이너리 크기(200KiB 미만)로 빠른 데이터 바인딩이 가능하며 사용하기 쉬운 API를 갖추고 있습니다.

5) GSON과 Jackson은 Java 세계에서 JSON 데이터 관리에 가장 인기 있는 솔루션입니다.

많은 JSON 구현이 시장에서 사용 가능하며, 대부분은 오픈 소스입니다.각각은 특정한 장점과 단점이 있다.

  • 구글 지슨
  • 잭슨
  • org.json 등

공식 문서를 보려면 Google GSON 클릭

  • Java 객체를 JSON으로 변환하기 위한 간단한 메서드 및 fromJson() 메서드를 제공합니다.
  • 기존의 수정할 수 없는 개체를 JSON으로 변환하거나 JSON에서 변환할 수 있습니다.
  • Java Generics의 광범위한 지원
  • 개체에 대한 사용자 지정 표현 허용
  • 임의로 복잡한 객체 지원(상속 계층이 깊고 범용 유형이 광범위하게 사용됨)

잭슨은 공식 문서를 클릭한다.

  • 스트리밍 API 또는 증분 구문 분석/생성: JSON 콘텐츠를 개별 이벤트로 읽고 씁니다.
  • 트리 모델: JSON 문서를 메모리 내에서 가변적으로 표시합니다.
  • 데이터 바인딩: JSON을 POJO와 변환합니다.

일부 비교 블로그는 여기를 클릭1, 블로그2

GSON 대 Jackson 대 Simple JSON을 사용하여 직접 시리얼화와 디시리얼라이제이션 벤치마크를 실시했습니다.

  • 매우 작은 개체:Google gson이 Jackson 및 Simple JSON보다 고속 처리
  • 대형 객체: Google gson이 Jackson 및 Simple JSON보다 고속 처리

실제 픽셀3 기기 Android 11에서 456Kb json 파일을 실험했습니다.데이터베이스에서 백업 파일을 생성해야 합니다.모델에는 1대 다의 관계를 갖는 3개의 객체가 있습니다.메모, 항목, 알람.

Note -> fields and List<Item>.
Item -> fields and List<Alarm>.
Alarm -> fields

Serialization result:
gson -> 75ms; org.json -> 63ms
gson -> 83ms; org.json -> 67ms
gson -> 73ms; org.json -> 62ms

보시다시피 기본 안드로이드 org.json은 GSON보다 빠릅니다.모델 매핑을 작성할 시간이 있다면 기본 org.json을 사용하는 것이 좋습니다.gson보다 빠르고 org.json보다 쉬운 json을 만들고 싶다면 moshi 또는 kotlinx-serialization을 사용해 보십시오.

언급URL : https://stackoverflow.com/questions/42641301/org-json-jsonobject-vs-gson-library-jsonobject

반응형