您现在的位置是:首页 > 文章详情

gson的安装和使用

日期:2017-06-24点击:402

gson的安装和使用

1.安装

422101-20171023101115473-1604755712.png

422101-20171023101300223-705615290.png

422101-20171023101308738-1682695550.png

422101-20171023101312816-923820504.png

2.布局

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="match_parent"  android:layout_height="match_parent" > <Button  android:id="@+id/send_request"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:text="Send Request" /> <ScrollView  android:layout_width="match_parent"  android:layout_height="match_parent" > <TextView  android:id="@+id/response_text"  android:layout_width="match_parent"  android:layout_height="wrap_content" /> </ScrollView> </LinearLayout>

3.查看声明

apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "demo.jq.com.networktest" minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.google.code.gson:gson:2.8.2' }

4.创建接收数据的类

package demo.jq.com.networktest; import java.lang.reflect.Array; /**  * @author jim  */ public class ApiData { String[] data =new String[5]; private Integer code; private String message; public String[] getData() { return data; } public void setData(String[] data) { this.data = data; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }

5.主体动作

package demo.jq.com.networktest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.json.JSONArray; import org.json.JSONObject; import java.io.BufferedReader; import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; /**  * @author jim  */ public class MainActivity extends AppCompatActivity implements View.OnClickListener{ TextView responseText; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button sendRequest = (Button) findViewById(R.id.send_request); responseText = (TextView) findViewById(R.id.response_text); sendRequest.setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId() == R.id.send_request) { sendRequestWithOkHttp(); } } private void sendRequestWithOkHttp() { // 开启线程来发起网络请求 new Thread(new Runnable() { @Override public void run() { HttpURLConnection connection = null; BufferedReader reader = null; try { OkHttpClient client = new OkHttpClient(); // post请求 RequestBody requestBody = new FormBody.Builder() .add("type","1") .build(); Request request = new Request.Builder() .url("http://devmg.yunlutong.com/api/test/testApi") .post(requestBody) .build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); // 解析json数据 parseJSONWithGSON(responseData); showResponse(responseData); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } if (connection != null) { connection.disconnect(); } } } }).start(); } /**  * 解析json  * @param jsonData  */ private void parseJSONWithGSON(String jsonData) { Gson gson = new Gson(); ApiData apiData = gson.fromJson(jsonData, ApiData.class); Log.d(TAG,"code is" + apiData.getCode()); Log.d(TAG,"message is" + apiData.getMessage()); // 遍历数据 for(int i = 0; i < apiData.getData().length; i++){ Log.d(TAG,"data "+i+" is " + apiData.getData()[i]); } } private void showResponse(final String response) { runOnUiThread(new Runnable() { @Override public void run() { responseText.setText(response); } }); } }

422101-20171023102012691-1580011398.png

422101-20171023102121988-219080258.png


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7714921.html,如需转载请自行联系原作者

原文链接:https://yq.aliyun.com/articles/346128
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章