programing

많은 클래스가 없는 GSON 구문 분석

codeshow 2023. 3. 18. 09:09
반응형

많은 클래스가 없는 GSON 구문 분석

저는 다음 JSON을 가지고 있으며, 오직 요소만 취득하는 것에 관심이 있습니다."status","lat"그리고."lng".

Gson을 사용하면 JSON 콘텐츠를 나타내는 클래스 구조 전체를 작성하지 않고 이 JSON을 해석하여 값을 얻을 수 있습니까?

JSON:

{
  "result": {
    "geometry": {
      "location": {
        "lat": 45.80355369999999,
        "lng": 15.9363229
      }
    }
  },
  "status": "OK"
}

새로운 클래스를 정의할 필요가 없습니다.Gson 라이브러리와 함께 제공되는 JSON 개체를 사용하면 됩니다.간단한 예를 다음에 제시하겠습니다.

JsonParser parser = new JsonParser();
JsonObject rootObj = parser.parse(json).getAsJsonObject();
JsonObject locObj = rootObj.getAsJsonObject("result")
    .getAsJsonObject("geometry").getAsJsonObject("location");

String status = rootObj.get("status").getAsString();
String lat = locObj.get("lat").getAsString();
String lng = locObj.get("lng").getAsString();

System.out.printf("Status: %s, Latitude: %s, Longitude: %s\n", status,
        lat, lng);

있는 그대로의 단순한.같은 코드를 반복해서 반복하는 경우 매핑을 단순화하고 반복을 제거하는 클래스를 만들 수 있습니다.

실제로 가능합니다만, 커스텀 디시리얼라이저를 작성해야 합니다.상세한 것에 대하여는, 여기에서는 Gson 메뉴얼을 참조해 주세요.또, 여기에서는 Gson API 자바독 를 참조해 주세요.그리고 여기와 여기다른 의견도 봐줘...의문점이 있으시면 댓글로 남겨주세요.

그렇다고는 해도, JSON의 응답의 단순함을 고려해, 대응 클래스를 작성하는 것은, 해석하는 것이 훨씬 더 간단하다고 생각합니다만….일반적인 접근방식에서는 몇 가지 초간단 클래스만 작성하면 됩니다.단, 커스텀 디시리얼라이저를 작성하면 됩니다.복잡하지는 않지만 시간이 더 걸릴 수 있으며 나중에 JSON의 다른 데이터가 필요할 경우 적응하기가 더 어려워집니다.

Gson은 해결 방법을 찾기 위한 것이 아니라 개발자가 사용할 수 있도록 설계된 운영 방식을 가지고 있습니다.

그나저나, 왜 수업을 이용하기 싫으세요?프로젝트에 클래스가 많은 것이 싫으면 네스트된 클래스를 사용하면 프로젝트가 깔끔해 보일 수 있습니다.

언급URL : https://stackoverflow.com/questions/16595493/gson-parsing-without-a-lot-of-classes

반응형