Android 解析Json

应用中我导入了一个包

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

下载地址:我的资源里面

http://download.csdn.net/detail/rwyz1314/3597488

主要代码

package rw.json1;

import java.io.StringReader;
import java.util.ArrayList;

import java.util.List;


import com.google.gson.stream.JsonReader;

import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;

public class json1Activity extends Activity {
	private List<String> list=new ArrayList<String>();
    //架设服务器的JSOn数据室乳腺的
	private String jsonData = "[{\"id\":\"2009081315\",\"name\":\"饶伟\",\"speciality\":\"计算机科学与技术\",\"qq\":812200157}," +
			"{\"id\":\"2009081316\",\"name\":\"小伟\",\"speciality\":\"软件工程\",\"qq\":321836987}" +
			"{\"id\":\"2009081315\",\"name\":\"伟哥\",\"speciality\":\"网络工程\",\"qq\":270046452}]";
	private Button button ;
	private ListView listView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button=(Button)findViewById(R.id.button);
        listView=(ListView)findViewById(R.id.listView1);
        button.setOnClickListener(new MyButtonListener());
    }
    class MyButtonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
		parseJson();
		   Adapter adapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
		   listView.setAdapter((ListAdapter) adapter);
		}
    	
    }
    public List<String> parseJson() {
    	try {
    		JsonReader reader=new JsonReader(new StringReader(jsonData));
    		reader.beginArray();
    		while (reader.hasNext()) {
    			reader.beginObject();
    			while (reader.hasNext()) {
    				String tagString=reader.nextName();
    			
    				String string ="";
    				if (tagString.equals("id")) {
    					string="学号:"+reader.nextLong();
 
    				}
    				else if (tagString.equals("name")) {
    					string="姓名:"+reader.nextString();
    			
    				}
    				else if (tagString.equals("speciality")) {
    					string="专业:"+reader.nextString();
    				
    				}
    				else if (tagString.equals("qq")) {
    					string="QQ:"+reader.nextLong();
    					
    				}
    				list.add(string);
    			}
    			reader.endObject();
    		}
    		reader.endArray();
    	} catch (Exception e) {
    		// TODO: handle exception
    		e.printStackTrace();
    	}
    return list;
    }
}

结果如下图


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值