많은 클래스가 없는 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
'programing' 카테고리의 다른 글
네이티브 텍스트가 내 화면에서 지워지고 포장을 거부합니다.무엇을 해야 하나? (0) | 2023.03.18 |
---|---|
jQuery: Ajax를 통해 모달 대화 상자 내용 로드 (0) | 2023.03.18 |
readyState vs status==200 (0) | 2023.03.13 |
JSON에서 커스텀 Json Converter를 구현하는 방법.인터넷? (0) | 2023.03.13 |
왜 앵글은JS 문서는 모델 지시문에 점을 사용합니까? (0) | 2023.03.13 |