안드로이드 개발에서 상당히 편리한 JSON 반서열화 실현(소스 코드 포함)에handler와 진도표 기능이 포함되어 있다

2272 단어
개발된 응용 프로그램 과정에서 저는 json이 가장 많은 경량급 데이터 교환 형식을 사용한다고 믿습니다. 여기서 저는 json에 대한 개념을 소개하지 않겠습니다.주로 json의 반서열화와 관련된 문제를 설명한다. 일반적인 상황에서 우리는 json을 다음과 같은 방식으로 해석한다.
				try {
					jObj = new JSONObject(resultString);
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

resultString은 json 형식의 문자열입니다. JSONObject 클래스로 전환된 후에 데이터를 하나하나 분석해야 합니다.
,
								int status =jObj.getInt("Status");
								String msgString = jObj.getString("Msg");

너는 이렇게 번거롭다는 것을 느낄 수 있겠지, 특히 많이 쓸 가치가 있을 때.구글도 이 문제를 발견하고 json 반서열화 패키지를 내놓았다.우리는 되돌아오는 키 값 형식을 클래스 형식으로 바꿀 수 있다. 이때 우리가 다시 사용할 때 클래스 이름이 된다.속성 이름에서 이 변수의 값을 얻을 수 있습니다.나는 여기서 몇 줄의 관건적인 코드를 뽑았는데,
						//httpget      
							String str = Common.requestApi("    URL   ");
							System.out.println("str" + str);
							//json      
							MagazineCategoryResp magazineCatagoryList = gson.fromJson(str, MagazineCategoryResp.class);
							Message message = new Message();
							message.what = 1;
							//     message
							message.obj = magazineCatagoryList;
							//  handler     handler      
							handler.sendMessage(message);

이렇게 하면 json의 반서열화를 실현할 수 있다. 이것은handler에서 처리된 것이다. 일반적인 상황에서 우리는 모두 네트워크를 통해 json 형식의 데이터를 얻는다.반서열화된 후에 우리는handler에서 이 종류를 받아들일 수 있고 변수 값을 매우 편리하게 사용할 수 있다.URL은 회사의 것이기 때문에 제가 주석을 해버렸습니다. 반환값의 유형은 원본 코드에 있습니다. 저는 출력된 정보를 주석에 넣었습니다. 이번에 얻은 인코딩 형식은 UTF-8이 아니니 아쉬운 대로 보십시오.
handler에서 데이터 코드 처리
	Handler handler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case 1:
				//       handler   
				MagazineCategoryResp magazineCatagoryList = (MagazineCategoryResp) msg.obj;
				//                   json 
				System.out.println("Result=" + magazineCatagoryList.data.get(0).name);
				tvTest.setText(magazineCatagoryList.data.get(0).name);
				break;
			}
			super.handleMessage(msg);
		}
	};

결과는 테스트용이어서 get(0)을 직접 사용했습니다.
여기도handler 메커니즘을 사용했고 진도표의 사용도 했습니다. 모르면 포럼에서 관련 강좌와 예를 찾아보세요.CSDN에도 큰 소의 블로그에 언급이 많다.
코드 다운로드
전재 는 출처 를 밝혀 주십시오http://blog.csdn.net/walker02/article/details/8105936

좋은 웹페이지 즐겨찾기