Android初级开发(九)——网络交互—解析JSON格式数据
来源:互联网 发布:java面试问题 编辑:程序博客网 时间:2024/05/17 07:04
一、前言
首先还是在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、查看日志
阅读全文
0 0
- Android初级开发(九)——网络交互—解析JSON格式数据
- Android初级开发(九)——网络交互—解析XML格式数据
- Android初级开发(九)——网络交互—WebView的使用
- Android初级开发(九)——网络交互—HttpURLConnection
- Android初级开发(九)——网络交互—OkHttp
- Android解析数据—JSON格式数据
- Android初级自学笔记—json 数据解析
- Android网络数据Json格式解析
- Android网络数据Json格式解析
- Android基础(网络)——Json数据解析
- Android之网络编程(四)解析 JSON 格式数据
- Android开发案例:网络交互&XML与json数据解析&HttpUtil优化
- iOS网络开发——解析与封装JSON数据
- iOS开发网络篇—JSON数据的解析
- iOS开发网络篇—JSON数据的解析
- iOS开发网络篇—JSON数据的解析
- Android网络通讯——JSON,GSON解析网络数据
- Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
- 入职YZ前
- tomcat和Jboss7的区别
- 51nod 1524 可除图的最大团 dp
- 解密智慧工程中的SaaS应用
- HDU 5826 速度+加速度+积分
- Android初级开发(九)——网络交互—解析JSON格式数据
- 电池热失控
- Python入门 HelloWorld
- RobotFramework AppiumLibrary 用户关键字
- Window7 64位环境下搭建redis开发环境 vs2015
- Android检查是否已经连接到网络
- Opencv vector
- java中的注解
- (lintcode)第7题二叉树的序列化和反序列化