- 전체
- android studio
- Android SDK
- Android NDK
- Android ADK
- Android Etc. Lib.
- Android dalvik VM
- Android 보안
- PhoneGap
- AOSP 개발
- MIT App Inventor 2
- kivy (python)
- ionic framework
- Kotlin (코틀린)
- React Native
Android SDK 안드로이드 에서 JSON 읽어오기 (JSON parser)
2017.06.18 15:43
안드로이드 에서 JSON 읽어오기 (JSON parser)
Android 2015.08.20 23:19
share this post
안드로이드 에서 JSON 읽어오기 (JSON parser)
안드로이드에 국한된 주제는 아니지만, JSON 과 XML 은 워낙 많이 사용하는 자료형태이기 때문에, 간단하게 사용하는 코드를 작성해 보았습니다.
JSON 과 XML 의 표현 방식 차이에 대해 비교 해놓은 것은 아래 링크를 참조하세요
1. 우선은 parsing 할 JSON 텍스트 준비.
: 아래와 같이 기본적인 스트링으로 해도 되고
: 안드로이드의 string 리소스에 넣어두어도 됩니다.
|
1 2 3 4 |
String str = "[{'name':'배트맨','age':43,'address':'고담'},"+ "{'name':'슈퍼맨','age':36,'address':'뉴욕'},"+ "{'name':'앤트맨','age':25,'address':'LA'}]"; |
cs |
2. 위의 준비된 텍스르토 JSONArray 객체 생성.
|
1 |
JSONArray jarray = new JSONArray(str); // JSONArray 생성 |
cs |
3. JSONArray 객체의 getJSONObject(i) 메소드로 child object 들을 차례대로 추출
이때 child 의 개수는 length() 메소드로 체크 가능.
추출된 child object 들은 JSONObject 로 받습니다.
|
1 2 3 4 |
for(int i=0; i < jarray.length(); i++){ JSONObject jObject = jarray.getJSONObject(i); // JSONObject 추출 ..... } |
cs |
4. 각 JSONObject 객체에서 get***("~~") 메소드를 통해 '값' 을 받습니다.
이때 get*** 메소드의 매개변수는 '키'값 입니다.
String address = jObject.getString("address");
String name = jObject.getString("name");
int age = jObject.getInt("age");
MainActivity 내용은 다음과 같습니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
public class MainActivity extends ActionBarActivity {
private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
tv = (TextView)findViewById(R.id.tvResult1); Button b = (Button) findViewById(R.id.button); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { doJSONParser(); } }); } // end onCreate()
void doJSONParser(){ StringBuffer sb = new StringBuffer();
String str = "[{'name':'배트맨','age':43,'address':'고담'},"+ "{'name':'슈퍼맨','age':36,'address':'뉴욕'},"+ "{'name':'앤트맨','age':25,'address':'LA'}]";
try { JSONArray jarray = new JSONArray(str); // JSONArray 생성 for(int i=0; i < jarray.length(); i++){ JSONObject jObject = jarray.getJSONObject(i); // JSONObject 추출 String address = jObject.getString("address"); String name = jObject.getString("name"); int age = jObject.getInt("age");
sb.append( "주소:" + address + "이름:" + name + "나이:" + age + "\n" ); } tv.setText(sb.toString()); } catch (JSONException e) { e.printStackTrace(); } } // end doJSONParser() } // end class
|
cs |
실행화면

출처: http://bitsoul.tistory.com/4 [Happy Programmer~]
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 13 |
빠르게배우는 안드로이드 Fragment-4(Fragment간 에 데이터전달)
| 졸리운_곰 | 2020.09.19 | 155 |
| 12 |
빠르게배우는 안드로이드 Fragment-3(Fragment기초 실습)
| 졸리운_곰 | 2020.09.19 | 209 |
| 11 | 빠르게배우는 안드로이드 Fragment-2(Activity-> Fragment로 쉽게 변경) | 졸리운_곰 | 2020.09.19 | 236 |
| 10 |
빠르게배우는 안드로이드 Fragment -1 (배경)
| 졸리운_곰 | 2020.09.19 | 194 |
| 9 |
안드로이드 스튜디오 - 새로 생성한 Activity Class를 쉽게 Manifest에 등록하기.
| 졸리운_곰 | 2020.08.08 | 252 |
| 8 |
Android Studio Build시 failed linking references 해결방법
| 졸리운_곰 | 2020.05.05 | 648 |
| 7 |
[안드로이드 스튜디오] COULD NOT FIND COM.ANDROID.TOOLS.BUILD:GRADLE:3.0.0-BETA6
| 졸리운_곰 | 2020.05.05 | 125 |
| 6 |
Android Sync SQLite Database with Server using PHP and MySQL
| 졸리운_곰 | 2019.02.25 | 7762 |
| 5 |
안드로이드의 MVC, MVP, MVVM 종합 안내서
| 졸리운_곰 | 2019.01.06 | 370 |
| 4 |
Getting Started: WebView-based Applications for Web Developers
| 졸리운_곰 | 2018.09.03 | 410 |
| 3 |
Android Asynchronous Http Client
| 졸리운_곰 | 2017.07.03 | 709 |
| 2 |
android studio 2.3 의 안드로이드 레이아웃 배치 법 : Layout Editor로 UI 빌드
| 졸리운_곰 | 2017.03.09 | 534 |
| 1 |
Android Studio 2.2에서 Layout Preview 한글 깨짐 현상 해결 방법
| 졸리운_곰 | 2017.03.08 | 568 |

