【GAS】초보자용 JSON 형식의 읽는 방법
6103 단어 JSON초보자GoogleAppsScriptgas
개요
JSON은 형식의 데이터 기술을 다루는 일이 있지만, JSON이 무엇인지 잘 모르는, 굉장한 문자의 열로 보기 어려운, 게다가 GAS로 읽을 때의 쓰는 방법이 의미 모르겠다!
JSON을 처음부터 이해하는 것은 프로에게 맡기고, 아마추어 리먼은 우선 GAS에서 JSON 형식의 기술로부터 필요한 정보만 얻을 수 있으면 좋겠다고 생각했습니다.
엔지니어를 목표로 하는 것이 아니라 어쩐지 편리하게 사용하고 싶은 사람을 위한 기사^^)b
JSON 형식의 설명 예
개인적으로, GoogleMap을 geocode한 결과로서 JSON에 부딪히는 일이 많기 때문에, 그쪽을 예로 해설. 「스카이 트리」를 geocode했을 때에 얻을 수 있는 JSON 형식의 기술이 다음과 같다.
{status=OK, results=[{types=[establishment, point_of_interest, tourist_attraction],
place_id=ChIJ35ov0dCOGGARKvdDH7NPHX0, plus_code={compound_code=PR66+27 日本、東京都
墨田区, global_code=8Q7XPR66+27}, formatted_address=日本、〒131-8634 東京都墨田区押上
1丁目1−2, geometry={viewport={northeast={lat=35.7114116802915,
lng=139.8120493802915}, southwest={lat=35.7087137197085, lng=139.8093514197085}},
location_type=ROOFTOP, location={lng=139.8107004, lat=35.7100627}},
address_components=[{types=[premise], short_name=2, long_name=2}, {long_name=1,
types=[political, sublocality, sublocality_level_4], short_name=1}, {types=
[political, sublocality, sublocality_level_3], long_name=1丁目, short_name=1丁目},
{short_name=押上, types=[political, sublocality, sublocality_level_2], long_name=押
上}, {long_name=墨田区, types=[locality, political], short_name=墨田区}, {short_name=
東京都, types=[administrative_area_level_1, political], long_name=東京都}, {types=
[country, political], short_name=JP, long_name=日本}, {types=[postal_code],
long_name=131-8634, short_name=131-8634}]}]}
벌써 싫어・・・.
기본 사고 방식
예를 들어, 이 중에서 위도(lat)를 읽고 싶을 때, GAS에서는 다음과 같이 쓴다.
['results'][0]['geometry']['location']['lat']
그 마음은
[results[ ]内の] [1個目の{ }内の] [geometryの] [locationの] [lat]
의 의미. JSON의 기술을 잘 보면 그대로 되어 있는 것을 알 수 있다.잘 보았다.
개행 포인트는 텍토이지만, 나름대로 정리해 보았다.
results=[{geometry={location={lng=139.8107004, lat=35.7100627},
location_type=ROOFTOP,
viewport={northeast={lng=139.8120493802915, lat=35.7114116802915},
southwest={lng=139.8093514197085, lat=35.7087137197085}}},
place_id=ChIJ35ov0dCOGGARKvdDH7NPHX0,
address_components=[{long_name=2, short_name=2, types=[premise]},
{short_name=1, long_name=1, types=[political, sublocality, sublocality_level_4]},
{types=[political, sublocality, sublocality_level_3], long_name=1丁目, short_name=1丁目},
{short_name=押上, long_name=押上, types=[political, sublocality, sublocality_level_2]},
{types=[locality, political], long_name=墨田区, short_name=墨田区},
{short_name=東京都, long_name=東京都, types=[administrative_area_level_1, political]},
{short_name=JP, types=[country, political], long_name=日本},
{types=[postal_code], short_name=131-8634, long_name=131-8634}],
plus_code={compound_code=PR66+27 日本、東京都墨田区, global_code=8Q7XPR66+27},
types=[establishment, point_of_interest, tourist_attraction],
formatted_address=日本、〒131-8634 東京都墨田区押上1丁目1−2}]
원시 JSON보다 열심히 할 것 같아 (웃음)
순서대로 살펴보면, results[]가 있고, 그 중의 1번째의 { }안의, geometry의, location의 lat,로 확실히 위도까지 추적한다.
연습
우편번호를 읽으려면 "short_name=131-8634"까지 가는 길을 찾는다. 위도와 비교해 먼 orz 이런 때는, 나름대로 정리한 JSON 기술로부터, 불필요한 부분을 삭제.
results=[{address_components=[{},
{},
{},
{},
{},
{},
{},
{short_name=131-8634,}],
무슨 일입니까, 장인의 기술로 전망이 ヽ(*´∀`)노
방금 생각해보면, results[ ]안의, 1번째의 { }안의, address_components[ ]안의 ,8번째의 { }안의, short_name, 라고 하는 것이 되므로, GAS에서 작성하는 방법은
['results'][0]['address_components'][7]['short_name']
될 것입니다.
시도해 보았습니다.
코드는 이쪽
function myFunction() {
var geo = Maps.newGeocoder();
geo.setLanguage('ja');
var response = geo.geocode('スカイツリー');
var zip = response['results'][0]['address_components'][7]['short_name'];
Logger.log(zip);
}
그리고 로그는 이쪽
분명히 정답!
이것으로 JSON 형식의 기술도 무서워하지 않아.++(´∀`)
오시마
Reference
이 문제에 관하여(【GAS】초보자용 JSON 형식의 읽는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YasumiYasumi/items/ca0ecd3c0d1c02bdc3be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)