Android利用Gson实现对象和Json数据的相互转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android利用Gson实现对象和Json数据的相互转换

MainActitity如下:

package cc.test;

import android.app.Activity;

import android.os.Bundle;

/**

* Demo描述:

* 利用Gson实现对象和Json数据的相互转换

*

* Demo描述:

* 通过一个网络请求,获取JSON数据

*

* 注意:

* 1 网络请求的参数是JSON格式的数据

* 2 请求结果返回的亦是JSON格式的数据

*

*/

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.main);

init();

}

private void init(){

new Thread(){

public void run(){

GetJsonDataByPost httpJsonPost=new GetJsonDataByPost();

String[] pathArray=httpJsonPost.getPathArray("dev0003");

for(int i=0;i

System.out.println(pathArray[i]);

}

}

}.start();

}

}

GetJsonDataByPost如下:

package cc.test;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.params.HttpConnectionParams;

import org.apache.http.protocol.HTTP;

public class GetJsonDataByPost {

static private String Service_URL = "Your url";

static private int TIMEOUT = 120 * 1000;

String mMethodName;

public String[] getPathArray(String devnum) {

try {

mMethodName = "GetPicByUser";

String[] pathArray = null;

//将调用API的参数封装成JSON格式

String jsonParams = JsonUtils.getJsonRequestParams(devnum);

//返回的JSON数据

String jsonResult = getJsonDataByPost(jsonParams);

//从返回的JSON数据获取其包含的一个数组

pathArray = JsonUtils.getJsonRequestResponse(jsonResult);

return pathArray;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public String getJsonDataByPost(String json) {

String result = null;

try {

StringEntity entity = new StringEntity(json, HTTP.UTF_8);

entity.setContentType("application/json");

DefaultHttpClient client = new DefaultHttpClient();

client.getParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, TIMEOUT);

client.getParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, TIMEOUT);

if(mMethodName == null){

return null;

}

HttpPost httpPost = new HttpPost(Service_URL + mMethodName);

httpPost.setEntity(entity);

HttpResponse response = client.execute(httpPost);

InputStream inputStream = response.getEntity().getContent();

StringBuffer buffer = new Buffer();

InputStreamReader inputReader = new InputStreamReader(inputStream);

BufferedReader bufferReader = new BufferedReader(inputReader);

String str = new String("");

while ((str = bufferReader.readLine()) != null) {

buffer.append(str);

}

bufferReader.close();

result = buffer.toString();

System.out.println("---> API的请求结果result="+result);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return result;

}

}

JsonUtils如下:

package cc.test;

import com.google.gson.Gson;

import com.google.gson.JsonSyntaxException;

public class JsonUtils {

//该对象用于封装请求API的参数.

//请求时会将该对象转换为JSON格式的数据

static class JsonRequestParams {

相关文档
最新文档