Json解析字串j簡單一實例

來源:互聯網
上載者:User

標籤:

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視圖)

第一步:看JsonS視圖,從最裡層想外層寫

這裡強調一點,就是必須要一一對應才能解析

第一層代碼:

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;
}


}

第二層:從裡面往外數的第二層

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<CityBean> info;
private String resultInfo;
private String resultCode;
public List<CityBean> getInfo() {
return info;
}
public void setInfo(List<CityBean> 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<CityBean> list = user.getInfo();
mmAdapter = new MyBaseAdapter(this);
mlListView.setAdapter(mmAdapter);
mmAdapter.setData(list);
}


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


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


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


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


}


public void setData(List<CityBean> 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;
}
}

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

Json解析字串j簡單一實例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.