안드로이드 JSON 사용법

6433 단어 jsonandroid
자세히 보기
1. 생활 속에서 각 회사는 공공 API를 제공하여 프로그램에 접근하는 데이터를 제공한다. API를 호출함으로써 일반적으로 되돌아오는 데이터는 두 가지 형식이 있는데 그것이 바로 xml 형식이다.json 형식;2. JSON:* 개념: 일종의 경량급 데이터 교환 형식이다.언어에 완전히 독립된 텍스트 형식을 사용한다.3. json 데이터 형식 분류: * 키-values 형식;{name: "mike",age:18}* 객체 형식;{{name: "mike",age:18}, {name: "mike2",age:19}}주의: {}을 대상으로 함; *그룹 형식: {name: ["", "", ""],age:38} 주의: []는 그룹을 나타냅니다.*수조에 포함된 대상: {students: [{}, {}],age:33}팁: 만사만물은 대상이다.3. 데이터를 JSON의 형식으로 실현한다. 사례는 다음과 같다.
java 코드:
 package com.example.json_parse;

import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EncodingUtils;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.util.Xml.Encoding;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.JsPromptResult;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	private Button parseJSON,achieveJSON;
	private EditText show;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		/*      */
		parseJSON = (Button) findViewById(R.id.parseJSON);
		achieveJSON = (Button) findViewById(R.id.achieveJSON);
		show = (EditText) findViewById(R.id.show);
		
		/*        :    JSON     */
		achieveJSON.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				achieve_JSON();
			}
		});
		
		/*        :  JSON */
		parseJSON.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				parse_JSON();
			}
		});
		
		
	}
	
	/*   JSON         */
	protected void parse_JSON(){
		try{
			/*           JSON    ,     jsp    */
			String path ="http://192.168.16.16:8080/index1.jsp";
			
			/*       ;   IP        */
			HttpGet httpGet = new HttpGet(path);
			
			/*      */
			HttpClient httpClient = new DefaultHttpClient();
			HttpResponse httpResponse = httpClient.execute(httpGet);
			
			/*                  ,            ,200     */
			if(httpResponse.getStatusLine().getStatusCode()==200){
				Toast.makeText(MainActivity.this, "    !", 1000).show();
				
				HttpEntity httpEntity = httpResponse.getEntity();

				/*     :   EntityUtils ,               */
				String info = EntityUtils.toString(httpEntity, "UTF-8");
				
				
				/*       :        JSONObject    */
				JSONObject person = new JSONObject(info);
					
				
				/**********************************************************************/
				/* key==students    */
				JSONObject students_value = (JSONObject) person.get("students");
				/* key==school   */
				
				String school_value = EncodingUtils.getString(person.getString("school").getBytes(),"GBK") ;
				
				/**********************************************************************/
				
				/**********************************************************************/
				/*  key==students    ,key==c1    *//* key==c2    */
				JSONObject students_c1_value = students_value.getJSONObject("c1");
				JSONObject students_c2_value = students_value.getJSONObject("c2");
				/**********************************************************************/
				
				/**********************************************************************/
				/*  key==students ,key==c1  ,  :key==class / number /detail */
				String c1_class_value = students_c1_value.getString("class");
				String c1_number_value = students_c1_value.getString("number");
				JSONArray detail_value = students_c1_value.getJSONArray("detail");
				
				/*   detail       */
				String c1_detail_name_value = "";
				String c1_detail_age_value = "";
				ArrayList c1_detail_list = new ArrayList();
				for(int i=0;i c2_detail_list = new ArrayList();
				for(int i=0;i 

좋은 웹페이지 즐겨찾기