안드로이드 개발에서 상당히 편리한 JSON 반서열화 실현(소스 코드 포함)에handler와 진도표 기능이 포함되어 있다
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.