利用GSON解析JSON数据

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析DNS,个人版 1个月
云解析 DNS,旗舰版 1个月
简介: main.xml如下: TestJavaBean如下: package com.wy;public class TestJavaBean { public String COUPON...

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dip"
        android:textSize="22sp"
        android:text="GSON测试" />
    
   
      <Button 
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="180dip"
        android:text="将复杂JSON转换为JavaBean格式"
        />

</RelativeLayout>


TestJavaBean如下:

package com.wy;
public class TestJavaBean {
	public String COUPON_NO;
	public String COUPON_NM;
	public String COUPON_IMG;
	public String COUPON_CP;
	public String COUPON_EXPIRE_DATE;
	public String COUPON_EXPIRE_START_DM;
	public String COUPON_EXPIRE_END_DM;
	public String COUPON_grant_FLAG;
	public TestJavaBean() {
		super();
	}
	public String getCOUPON_NO() {
		return COUPON_NO;
	}
	public void setCOUPON_NO(String cOUPON_NO) {
		COUPON_NO = cOUPON_NO;
	}
	public String getCOUPON_NM() {
		return COUPON_NM;
	}
	public void setCOUPON_NM(String cOUPON_NM) {
		COUPON_NM = cOUPON_NM;
	}
	public String getCOUPON_IMG() {
		return COUPON_IMG;
	}
	public void setCOUPON_IMG(String cOUPON_IMG) {
		COUPON_IMG = cOUPON_IMG;
	}
	public String getCOUPON_CP() {
		return COUPON_CP;
	}
	public void setCOUPON_CP(String cOUPON_CP) {
		COUPON_CP = cOUPON_CP;
	}
	public String getCOUPON_EXPIRE_DATE() {
		return COUPON_EXPIRE_DATE;
	}
	public void setCOUPON_EXPIRE_DATE(String cOUPON_EXPIRE_DATE) {
		COUPON_EXPIRE_DATE = cOUPON_EXPIRE_DATE;
	}
	public String getCOUPON_EXPIRE_START_DM() {
		return COUPON_EXPIRE_START_DM;
	}
	public void setCOUPON_EXPIRE_START_DM(String cOUPON_EXPIRE_START_DM) {
		COUPON_EXPIRE_START_DM = cOUPON_EXPIRE_START_DM;
	}
	public String getCOUPON_EXPIRE_END_DM() {
		return COUPON_EXPIRE_END_DM;
	}
	public void setCOUPON_EXPIRE_END_DM(String cOUPON_EXPIRE_END_DM) {
		COUPON_EXPIRE_END_DM = cOUPON_EXPIRE_END_DM;
	}
	public String getCOUPON_grant_FLAG() {
		return COUPON_grant_FLAG;
	}
	public void setCOUPON_grant_FLAG(String cOUPON_grant_FLAG) {
		COUPON_grant_FLAG = cOUPON_grant_FLAG;
	}
	@Override
	public String toString() {
		return "TestJavaBean [COUPON_NO=" + COUPON_NO + ", COUPON_NM="
				+ COUPON_NM + ", COUPON_IMG=" + COUPON_IMG + ", COUPON_CP="
				+ COUPON_CP + ", COUPON_EXPIRE_DATE=" + COUPON_EXPIRE_DATE
				+ ", COUPON_EXPIRE_START_DM=" + COUPON_EXPIRE_START_DM
				+ ", COUPON_EXPIRE_END_DM=" + COUPON_EXPIRE_END_DM
				+ ", COUPON_grant_FLAG=" + COUPON_grant_FLAG + "]";
	}
	

}


MainActivity如下:

package com.wy;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.protocol.HTTP;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
 * Demo描述:
 * 利用GSON解析JSON数据--将json数据封装到ArrayList<Object>中
 * 注意:
 * JavaBean中的每个变量名于每个JSON数据的字段严格对应.
 * 比如大小写
 *
 */
public class MainActivity extends Activity {
   private Gson mGson;
   private Button mButton;
   private String mJSONData;
   private ArrayList<TestJavaBean> mTestJavaBeansArrayList;
   private String mUrl="your url";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
	private void init(){
		mButton=(Button) findViewById(R.id.button);
		mButton.setOnClickListener(new ClickListenerImpl());
	}

	private class ClickListenerImpl implements OnClickListener {
		@Override
		public void onClick(View v) {
			switch (v.getId()) {
			case R.id.button:
				try {
					mJSONData = getJSONData();
					mGson = new Gson();
					JSONObject jsonObject = new JSONObject(mJSONData);
					JSONArray jsonArray = jsonObject.getJSONArray("COUPON_LIST");
					System.out.println("需要转换的JSONArray=" + jsonArray.toString());
					Type listType = new TypeToken<ArrayList<TestJavaBean>>() {}.getType();
					mTestJavaBeansArrayList = mGson.fromJson(jsonArray.toString(), listType);
					System.out.println("linkedList.size()="+ mTestJavaBeansArrayList.size());
					for (int i = 0; i < mTestJavaBeansArrayList.size(); i++) {
						TestJavaBean testJavaBean = mTestJavaBeansArrayList.get(i);
						System.out.println("现在是第" + i + "个数据:" + " "+ testJavaBean.toString());
					}

				} catch (Exception e) {

				}
				break;
			default:
				break;
			}
		}

	}
	
	public String getJSONData() {
		HttpEntity httpEntity = null;
		HttpResponse response = null;
		try {
			Map<String, String> paramsHashMap = new HashMap<String, String>();
			paramsHashMap.put("IF_NO", "IF0002");
			paramsHashMap.put("UID", "12345");
			HttpPost httpPost = new HttpPost(mUrl);
			DefaultHttpClient httpClient = getHttpClient();
			List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
			for (Map.Entry<String, String> entry : paramsHashMap.entrySet()) {
				postData.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
			}
			UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postData,HTTP.UTF_8);
			httpPost.setEntity(entity);
			response = httpClient.execute(httpPost);
			httpEntity = response.getEntity();

			InputStream is = httpEntity.getContent();
			StringBuffer sb = new StringBuffer();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			String line = "";
			while ((line = br.readLine()) != null) {
				sb.append(line);
			}
            return sb.toString();
		} catch (Exception e) {

		}
		return null;

	}
	
	private DefaultHttpClient getHttpClient() {
		DefaultHttpClient httpClient = new DefaultHttpClient();
		HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 8000);
		HttpConnectionParams.setSoTimeout(httpClient.getParams(), 10000);
		HttpConnectionParams.setTcpNoDelay(httpClient.getParams(), true);
		return httpClient;
	}
}


 

相关文章
|
19天前
|
数据挖掘 Shell 测试技术
怎么用Python解析HTML轻松搞定网页数据
**Python解析HTML摘要** 本文介绍了使用Python处理HTML的常见需求,如数据提取、网络爬虫和分析,并讨论了三种解析方法。正则表达式适用于简单匹配,但对复杂HTML不理想;BeautifulSoup提供简单API,适合多数情况;lxml结合XPath,适合处理大型复杂文档。示例展示了如何用这些方法提取链接。
|
16天前
|
数据采集 存储 API
Python虚拟环境数据共享技术解析:最佳实践与常见误区
本文探讨了Python爬虫开发中如何在虚拟环境中管理数据,提倡使用共享目录、数据库和API进行数据共享。通过创建虚拟环境、安装依赖并提供一个使用代理IP爬取微博数据的示例,阐述了如何配置代理、解析网页及保存数据到共享路径。强调了避免硬编码路径、忽视依赖管理和数据安全性的误区。
37 11
Python虚拟环境数据共享技术解析:最佳实践与常见误区
|
23天前
|
JSON 文字识别 数据格式
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
|
9天前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之如何同步OSS中的Parquet数据,并解析里面的数组成多个字段
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
24天前
|
JSON JavaScript 前端开发
如何在Java中使用JSON:解析与生成
如何在Java中使用JSON:解析与生成
|
26天前
|
存储 JSON JavaScript
使用JSONObject解析与生成JSON数据
使用JSONObject解析与生成JSON数据
|
9天前
|
JSON 分布式计算 大数据
MaxCompute产品使用合集之如何解析嵌套的JSON数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
23天前
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
44 0
|
25天前
|
JSON Java 数据格式
使用JSONObject解析与生成JSON数据
使用JSONObject解析与生成JSON数据

热门文章

最新文章

推荐镜像

更多