当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

android gson解析

发表于: 2014-06-12   作者:baoyao   来源:转载   浏览次数:
摘要: 首先要导包gson-2.2.4.jar到libs下 MainActivity.java package com.json.web_study.test_01; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.lang.reflect.Type; import
首先要导包gson-2.2.4.jar到libs下

MainActivity.java

package com.json.web_study.test_01;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONObject;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

	private Button button;
	private MyHandler handler;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		button = (Button) findViewById(R.id.button1);
		button.setOnClickListener(this);

		handler = new MyHandler();
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		if (v.getId() == R.id.button1) {
			MyThread thread = new MyThread();
			thread.start();
		}
	}

	public String readData(InputStream inSream, String charsetName)
			throws Exception {
		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len = -1;
		while ((len = inSream.read(buffer)) != -1) {
			outStream.write(buffer, 0, len);
		}
		byte[] data = outStream.toByteArray();
		outStream.close();
		inSream.close();
		return new String(data, charsetName);
	}

	class MyThread extends Thread {
		@Override
		public void run() {
			try {
				URL url = new URL(
						"http://192.168.1.106:8080/MyWeb_Json/myjson2.json");
				HttpURLConnection conn = (HttpURLConnection) url
						.openConnection();

				InputStream input = conn.getInputStream();
				String json = readData(input, "utf-8");
				

				// 普通解析
				// JSONArray jlist=new JSONArray(Test.getJson());
				//
				// for (int i = 0; i < jlist.length(); i++) {
				// JSONObject jobj=jlist.getJSONObject(i);
				// String name=jobj.getString("name");
				// String address=jobj.getString("address");
				//
				// System.out.println(name+"---------"+address);
				//
				// Message message=new Message();
				// Bundle data=new Bundle();
				// data.putString("name", name);
				// data.putString("address", address);
				// message.setData(data);
				//
				// handler.sendMessage(message);
				//
				// sleep(1000);
				//
				// }

				// gson 解析 (导包)
				Gson gson = new Gson();
				Type listType = new TypeToken<List<Person>>() {
				}.getType();
				List<Person> persons = gson.fromJson(json, listType);

				for (int i = 0; i < persons.size(); i++) {
					System.out.println(persons.get(i).getName() + "---------"
							+ persons.get(i).getAddress());

					Message message = new Message();
					Bundle data = new Bundle();
					data.putString("name", persons.get(i).getName());
					data.putString("address", persons.get(i).getAddress());
					message.setData(data);

					handler.sendMessage(message);

					sleep(1000);
				}

			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
	}

	class MyHandler extends Handler {

		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			Bundle data = msg.getData();
			String name = data.getString("name");
			String address = data.getString("address");

			Toast.makeText(MainActivity.this, name + "---------" + address,
					Toast.LENGTH_SHORT).show();
		}

	}
}


manifest.xml
    <uses-permission android:name="android.permission.INTERNET"/>



android gson解析

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
  JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来
背景 json是一种数据格式,便于数据传输、存储、交换。 gson是一种组件库,可以把java对象数据转换
1.可以利用Android API中的JsonReader解析Json数据 2.可以引入Gson的jar包,结合JavaBean解析Json数
如何在Android平台上用GSON反序列化JSON数据, 参考了这篇文章http://benjii.me/2010/04/deserializi
有过一些面试经验的人基本都深有体会,每次面试一般都会问到Fragment的知识,所以,今天我就单独把F
解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析。 DOM(文件对象模型)解析:解析器读入整
在Android應用框架裡,應用層級的軟體大多是Java類別,而系統層級的軟體大多是C或C++類別。Android
华清远见讲师 刘洪涛 一、概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8881711 我们都知道,Android
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号