Android利用Gson实现对象和Json数据的相互转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 {