利用GSON解析JSON数据
来源:互联网 发布:2017网络诈骗事件 编辑:程序博客网 时间:2024/06/09 04:12
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;}@Overridepublic 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";@Overrideprotected 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 {@Overridepublic 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;}}
- 利用GSON解析JSON数据
- 利用Gson快捷解析Json数据
- Android利用Gson解析Json数据
- Gson解析Json数据
- Gson解析Json数据
- Gson解析Json数据
- Gson解析json数据
- Gson解析json数据
- Gson解析Json数据
- Gson解析Json数据
- gson 解析json数据
- GSON解析json数据
- Gson解析Json数据
- Gson解析Json数据
- Gson解析json数据
- Gson解析json数据
- gson 解析json数据
- Gson解析json数据
- 2.0 不支持扩展方法,做个记录
- pthread_t 线程id为负数的原因
- cocos2d中CCSprite的使用总结
- 质数生成器(小例子)
- windows phone8开发教程
- 利用GSON解析JSON数据
- 交叉编译appweb 4.2
- Query validate 验证隐藏表单
- OBJECT-C Foundation Kit
- oracle logminer
- Oracle 数据字典和数据字典视图
- 开始的一些知识和概念
- JAVA 使用相对路径读取文件
- 使用Audio Player来播放wav文件