JSon 해석 문자열 해석 간단 한 실례

5782 단어 Android
JSon 은 문자열 인 스 턴 스 를 분석 하고 내용 은 다음 과 같 습 니 다.
{"info":[{"code":"C","key":"028","nearest":"NO","value":"�ɶ�"},{"code":"N","key":"0771","nearest":"NO","value":"����"},{"code":"L","key":"0772","nearest":"NO","value":"����"},{"code":"G","key":"0773","nearest":"NO","value":"����"}],"resultCode":"0","resultInfo":"SUCCESS"}
사이트 주소:http://www.bejson.com/go.html?u=http://www.bejson.com/jsonview2/(JSon 보기)
STEP 1: JSON S 보 기 를 보고 가장 안쪽 에서 바깥쪽 으로 쓰 려 고 합 니 다.
여기 서 강조 하 는 것 은 반드시 일일이 대응 해야만 해석 할 수 있다 는 것 이다.
1 층 코드:
package com.example.com.scxh.jsonjiexi;

//   CityBean
public class CityBean {
private String code;
private String key;
private String nearest;
private String value;


public String getCode() {
return code;
}


public void setCode(String code) {
this.code = code;
}


public String getKey() {
return key;
}


public void setKey(String key) {
this.key = key;
}


public String getNearest() {
return nearest;
}


public void setNearest(String nearest) {
this.nearest = nearest;
}


public String getLvalue() {
return value;
}


public void setLvalue(String lvalue) {
this.value = lvalue;
}

}

2 층: 안에서 밖으로 세 는 2 층
package com.example.com.scxh.jsonjiexi;


import java.io.Serializable;
import java.util.List;


import junit.runner.Version;


import org.apache.http.entity.SerializableEntity;


public class UpdateDao implements Serializable{
private List info;
private String resultInfo;
private String resultCode;
public List getInfo() {
return info;
}
public void setInfo(List info) {
this.info = info;
}
public String getResultInfo() {
return resultInfo;
}
public void setResultInfo(String resultInfo) {
this.resultInfo = resultInfo;
}
public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}

}

세 번 째 단계: 주 Activty 에서 분석 합 니 다. (여기 서 어댑터 를 주 Activty 에 같이 썼 습 니 다)
package com.example.com.scxh.jsonjiexi;


import java.util.ArrayList;
import java.util.List;


import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;


public class MainActivity extends Activity {
private ListView mlListView;
private MyBaseAdapter mmAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mlListView = (ListView) findViewById(R.id.listviews);
//     assets   (    )
String json = ReadAssetsFile.readtxt(this, "citymessage.txt");
Log.e("json", json);
// UpdateDao user = JSON.parseObject(json, UpdateDao.class);


Gson gson=new Gson();


UpdateDao user=gson.fromJson(json, UpdateDao.class);


List list = user.getInfo();
mmAdapter = new MyBaseAdapter(this);
mlListView.setAdapter(mmAdapter);
mmAdapter.setData(list);
}


public class MyBaseAdapter extends BaseAdapter {
private List mList = new ArrayList();
private LayoutInflater mInflater;
private Context mcontext;


public MyBaseAdapter(Context context) {
mcontext = context;
mInflater = LayoutInflater.from(mcontext);
}


public MyBaseAdapter(Context context, List list) {
mcontext = context;


mInflater = LayoutInflater.from(mcontext);
mList = list;


}


public void setData(List list) {
mList = list;
notifyDataSetChanged();
}


@Override
public int getCount() {
return mList.size();
}


@Override
public Object getItem(int position) {
return mList.get(position);
}


@Override
public long getItemId(int position) {
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listview, null);


holder.titleTxt = (TextView) convertView
.findViewById(R.id.textviews);
holder.infoTxt = (TextView) convertView
.findViewById(R.id.textviewss);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}


CityBean msg = (CityBean) getItem(position);
;
holder.titleTxt.setText(msg.getCode());
holder.infoTxt.setText(msg.getKey());
return convertView;
}

class ViewHolder {
TextView titleTxt = null;
TextView infoTxt = null;
}


}
}

---------------------------------------------------------------------------------------
파일 읽 기 (스 트림 읽 기) 를 승 덕 클래스 로 단독 패키지 합 니 다.
package com.example.com.scxh.jsonjiexi;


import java.io.IOException;
import java.io.InputStream;


import android.content.Context;
//         
public class ReadAssetsFile {
private static String text;


public static String readtxt(Context context, String name) {
try {
InputStream is = context.getAssets().open(name);
int size = is.available();
// Read the entire asset into a local byte buffer.
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
// Convert the buffer into a string.
text = new String(buffer, "utf-8");
} catch (IOException e) {
e.printStackTrace();
}
return text;
}
}

-----------------------------------------------------------------------------------

좋은 웹페이지 즐겨찾기