Photo of Oldest Known Map

가장 오래된 지도 사진

사진 제공 CEA + 라이선스에 따른 허가 CC BY 2.0

이 게시물에서는 다음과 같은 기본 요소에 대해 계속 살펴보고자 합니다. 카우치베이스 모바일 를 클릭하세요. 대부분의 정보는 iOS에도 적용됩니다. iOS와 크로스 플랫폼 도구에 대한 자세한 내용은 곧 발표될 예정입니다.

제가 왜 NoSQL로 전환하고 다음을 사용하는지에 대한 중간 수준의 개요를 읽을 수 있습니다. 카우치베이스 라이트 및 기타 모바일용 스토리지 옵션 대신 여기.

이 게시물 를 사용하면 몇 분 안에 Android에서 실행할 수 있습니다. 그리고 이것 에서는 기본적인 데이터베이스 작업을 살펴봅니다. 이 게시물에서 제가 사용하는 지도 광범위하게.

JSON을 직접 다루기

맵으로 많은 일을 할 수 있습니다. 종종 데이터를 목록과 같은 다른 구조로 가져올 수도 있습니다. 이 정도면 충분할 수도 있습니다. 다음은 필요한 타입캐스트의 예시입니다.

예제 앱에서는 댓글 집합을 문자열 배열로 저장했습니다. 여전히 키를 기반으로 배열을 가져와야 하지만 거기서부터 목록으로 처리할 수 있습니다.

더욱 정교한 터치

보다 정교한 애플리케이션의 경우 문서를 완전히 객체로 변환하는 것이 좋습니다.

JSON을 Java 객체로 변환하기 위한 여러 라이브러리가 있습니다. JSON 처리를 위한 Android의 표준 API에는 몇 가지 실질적인 제한이 있지만 기본 제공되므로 이점이 있습니다. Google에는 라이브러리가 있습니다, Gson. Gson은 소스에 액세스할 수 없는 경우를 처리할 수 있습니다. 저는 흥미로운 점을 발견했습니다. Gson 디자인 문서 를 참조하여 JSON을 처리할 때 고려해야 할 다른 사항에 대해 자세히 알아보세요.

이 글에서는 또 다른 인기 있는 JSON 라이브러리에 대해 이야기하려고 합니다, Jackson. Jackson은 상당히 성숙하고 JSON을 처리하는 세 가지 접근 방식을 지원하며 효율성에 대한 명성이 높습니다.

데이터 바인딩

잭슨의 세 가지 모드에 대한 자세한 내용을 읽어보세요. 여기 를 사용할 수 있습니다. 대부분의 앱 개발자는 아마도 데이터 바인딩 접근 방식입니다. 다소 어렵게 들릴 수도 있지만 실제로는 그렇지 않습니다. 여기서 데이터 바인딩은 자동화된 방식으로 JSON을 객체의 속성과 일치시키는 것을 의미합니다.

예를 들어, 데이터 바인딩은 다음을 의미합니다.

를 사용하여 이 인스턴스를 생성합니다.

잭슨은 도움 없이도 이 작업을 수행하는 방법을 꽤 잘 알아냅니다. 위의 필드는 모두 공개로 선언되었으므로 다른 작업을 수행할 필요가 없습니다. JSON 데이터가 하나의 지도 라고 불리는 이 스니펫은 a 연락처 인스턴스입니다.

위의 JSON이 Couchbase 문서의 데이터를 나타내는 경우 코드는 다음과 같을 것입니다.

필드가 공개되지 않은 경우 해당 게터와 세터가 있는 경우 이 방법이 작동합니다.

약간의 도움이 필요합니다: 주석

마지막으로 주석을 사용하여 객체 구성을 정말 세밀하게 제어할 수 있습니다. 잭슨 어노테이션은 강력합니다. 자세한 설명은 이 블로그의 범위를 벗어납니다. 주석에 대해 설명하는 좋은 가이드를 읽어 보세요. 여기.

POJO(플레인 올드 자바 객체)1

주석을 사용하는 데 도움이 되려면 기본 클래스로 시작하는 것이 유용하다는 것을 알았습니다. 다음은 코드입니다.

첫 번째 주석 @JsonInclude(Include.NON_NULL) 은 잭슨에게 널 필드(즉, 데이터에서 누락된 항목)를 무시하도록 지시합니다.

코드와 함께 다음 세 개의 어노테이션을 사용하면 잭슨이 지정되지 않은 모든 필드를 처리할 수 있습니다. 잭슨은 사용자가 말하지 않은 모든 것을 추가 프로퍼티 맵에 기꺼이 채워 넣습니다. 즉, 코드가 날아갈 염려 없이 데이터를 변경할 수 있습니다. 말할 필요도 없이, 이 기능을 사용하면 실제 실수가 눈에 띄지 않을 수 있으므로 주의해서 사용하세요!

마지막으로, 직접 하는 것을 피하고 싶다면 클래스에 주석을 자동으로 달 수 있는 도구에 대한 링크를 참조하세요: http://www.jsonschema2pojo.org/

최종 참고 사항

카우치베이스 라이트는 현재 내부적으로 잭슨을 사용하고 있습니다. 많은 사람들이 다음과 같이 추천합니다. not 여기에 의존하고 있습니다. 라이브러리 충돌이나 기타 문제가 발생할 경우를 대비하여 이 점을 지적합니다.

포스트 스크립트

더 많은 리소스를 확인하세요. 개발자 포털 트위터에서 팔로우하세요 카우치베이스 개발. 에 질문을 게시할 수 있습니다. 포럼. 그리고 다음에도 적극적으로 참여합니다. 스택 오버플로.

다음 주소에서 저를 개인적으로 팔로우할 수 있습니다. 호드그릴리

작성자

게시자 호드 그릴리, 개발자 옹호자, 카우치베이스

호드 그레이리는 실리콘밸리에 거주하는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어 및 엔지니어링 관리자로서 20년 이상의 경력을 보유하고 있습니다. 그는 전산 물리학 및 화학, 컴퓨터 및 네트워크 보안, 금융, 모바일 등 다양한 소프트웨어 분야에서 일해 왔습니다. 2016년 카우치베이스에 합류하기 전에는 삼성에서 모바일 개발자 관계를 이끌었습니다. 컬럼비아 대학교에서 화학 물리학 박사 학위를 받았습니다.

댓글 남기기