• 数据格式利用GSON接卸JSON数据


    最近一直在学习数据格式之类的问题,现在正好有机会和大家讨论一下.

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

        
     

    文章结束给大家分享下程序员的一些笑话语录: 一条狗在街上闲逛,看见橱窗里一张告示:「招聘程序员。会编程,有团队精神,至少精通两种语言。均等机会。」
      那条狗就进去申请,但是被拒绝了。
      「我不能雇一条狗在公司里做事。」经理说。
      狗不服气,指着告示上「均等机会」几字抗议。
      经理没法,叹了口气,不屑地问道:「你会编程吗?」
      那条狗默默地走到电脑前,编了个程序,运作准确。
      「你有团队精神吗?」经理问。
      那条狗掉头看了看门外,一大群野狗在外面虎视耽耽。
      「我真的不能雇狗做这份工作。」经理气急败坏地说。
      「就算会编程、有团队精神,但是我需要的雇员至少要能精通两种语言。」
      那条狗抬头看着经理说:「喵-噢。」

  • 相关阅读:
    泛型的二阶构造
    二叉树的优势
    浅谈AVL树,红黑树,B树,B+树原理及应用
    AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?
    据库索引及其数据结构
    关系型数据库工作原理-数据结构(3)
    数据库的最简单实现
    为什么使用数据库?数据库的存取效率如何保证?
    iOS原生数据存储策略
    数据存储要解决的几个问题
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3043213.html
Copyright © 2020-2023  润新知