Android初级开发(九)——网络交互—解析JSON格式数据
2017-08-28 18:06
756 查看
一、前言
首先还是在web服务器(我这里用的是tomcat)新建json文本
文本内容
在浏览器上预览一下
二、JSONObject方法
1、我们还是在OkHttp的基础上修改代码,布局不变
MainActivity.java代码如下
2、看一下日志
三、GSON方法
1、添加库依赖
2、新增一个实体类,我们命名为APP
3、修改MainActivity.java
4、查看日志
首先还是在web服务器(我这里用的是tomcat)新建json文本
文本内容
在浏览器上预览一下
二、JSONObject方法
1、我们还是在OkHttp的基础上修改代码,布局不变
MainActivity.java代码如下
public class MainActivity extends AppCompatActivity { Button sendRequest; TextView responseText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); responseText = (TextView) findViewById(R.id.response_text); sendRequest = (Button) findViewById(R.id.send_request); sendRequest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new Thread(new Runnable() { @Override public void run() { try{ OkHttpClient client = new OkHttpClient(); //模拟器是连接不到localhost的,10.0.2.2对于模拟器来说就是电脑本机的IP地址 Request request = new Request.Builder().url("http://10.0.2.2:8080/zwj/zwj_jsonTest.json").build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); //得到服务器返回的数据后,调用parseXMLWithPull()方法解析服务器返回的数据 parseJSONWithJSONObjct(responseData); }catch (Exception e){ e.printStackTrace(); } } }).start(); } }); } private void parseJSONWithJSONObjct(String jsonData) { try{ JSONArray jsonArray = new JSONArray(jsonData); for(int i = 0;i < jsonArray.length();i++){ JSONObject jsonObject = jsonArray.getJSONObject(i); String id = jsonObject.getString("id"); String name = jsonObject.getString("name"); String version = jsonObject.getString("version"); Log.d("MainActivity","id is"+ id); Log.d("MainActivity","name is"+ name); Log.d("MainActivity","version is"+ version); } }catch (Exception e){ e.printStackTrace(); } } }
2、看一下日志
三、GSON方法
1、添加库依赖
2、新增一个实体类,我们命名为APP
public class App { private String id; private String name; private String version; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } }
3、修改MainActivity.java
public class MainActivity extends AppCompatActivity { Button sendRequest; TextView responseText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); responseText = (TextView) findViewById(R.id.response_text); sendRequest = (Button) findViewById(R.id.send_request); sendRequest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new Thread(new Runnable() { @Override public void run() { try{ OkHttpClient client = new OkHttpClient(); //模拟器是连接不到localhost的,10.0.2.2对于模拟器来说就是电脑本机的IP地址 Request request = new Request.Builder().url("http://10.0.2.2:8080/zwj/zwj_jsonTest.json").build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); //得到服务器返回的数据后,调用parseXMLWithPull()方法解析服务器返回的数据 parseJSONWithGSON(responseData); }catch (Exception e){ e.printStackTrace(); } } }).start(); } }); } private void parseJSONWithGSON(String jsonData) { Gson gson = new Gson(); List<App> appList = gson.fromJson(jsonData, new TypeToken<List<App>>(){}.getType()); for (App app:appList){ Log.d("MainActivity","id is"+app.getId()); Log.d("MainActivity","name is"+app.getName()); Log.d("MainActivity","version is"+app.getVersion()); } } }
4、查看日志
相关文章推荐
- Android初级开发(九)——网络交互—解析XML格式数据
- Android开发案例:网络交互&XML与json数据解析&HttpUtil优化
- Android访问网络:服务端返回XML或JSON格式数据,Android 进行解析并使用ListView显示
- 【Android网络开发の4】解析和生成JSON数据
- Android网络数据Json格式解析
- 【Android网络开发の4】解析和生成JSON数据
- Android开发 解析JSON数据格式 如何去掉JSON数据文件的BOM头
- iOS网络编程:网络交互数据格式解析之json
- Android商城开发系列(六)——使用 OkHttpUtils 请求网络 + 使用 fastjson解析数据
- Android之网络编程(四)解析 JSON 格式数据
- Android网络数据Json格式解析
- iOS网络交互数据格式解析之json
- 【Android开发经验】Json数据格式介绍、使用Android自带类库完成Json生成与解析
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】
- 【Android网络开发の4】解析和生成JSON数据
- Android开发中使用fastJSON将json格式的数据快速解析生成实体类并附上实体类生成器
- iOS网络交互数据格式解析之json
- 【Android开发经验】Json数据格式介绍、使用Android自带类库完成Json生成与解析