当前位置: 首页 > news >正文

陕西 网站建设首选公司/站长工具最近查询

陕西 网站建设首选公司,站长工具最近查询,昌乐网站设计,做安卓app用什么软件实验目的: 理解JSON数据的基本结构掌握使用Gson解析JSON数据的方法 实验内容:使用解析JSON文件获取天气预报信息,并将不同城市的天气信息显示在主界面中,应用程序运行时界面如图1所示。单击其他城市按钮时,将显示相应…

实验目的:

  1. 理解JSON数据的基本结构
  2. 掌握使用Gson解析JSON数据的方法

实验内容:
使用解析JSON文件获取天气预报信息,并将不同城市的天气信息显示在主界面中,应用程序运行时界面如图1所示。单击其他城市按钮时,将显示相应城市对应的天气信息,如图2所示。

图1 程序运行初始界面                         图2 切换城市天气显示界面

实验步骤:

  1.  TestServer服务器端,在WebRoot文件夹下新建weather.json文件,使其包含三个城市的天气信息,每一个城市天气都由tempweathernamepmwind属性组成,json文件如下:
[{"temp":"20℃/30℃","weather":"晴转多云","name":"上海","pm":"80","wind":"1级"},{"temp":"15℃/24℃","weather":"晴","name":"北京","pm":"98","wind":"3级"},{"temp":"26℃/32℃","weather":"多云","name":"广州","pm":"30","wind":"2级"}]
  1. 导入项目原始代码,在MainActivity.javaonCreate()方法内部,通过访问服务器获取JSON数据并将数据封装到消息中发送给UI线程。

       new Thread(new Runnable() {
           
@Override
           
public void run() {
               
try {
                    OkHttpClient client=
new OkHttpClient();
                    Request request=
new Request.Builder().url(urlStr).build();//是两边的类型相匹配
                   
Response response=client.newCall(request).execute();//返回的响应的数据
//                  Call call=client.newCall(request);
//                  Response response=call.execute();
                   
System.out.println("********respnse详细信息***:"+response);
                   
if (response.isSuccessful()){
                        String str=response.body().string();
                        System.
out.println("*****************这是一个分机线***************************");
                        System.
out.println(str);
                        Message msg=Message.obtain();
//获取message对象obj,传递数据 
                       
msg.obj=str;
                        System.
out.println(msg.obj);
                       
handler.sendMessage(msg);
                    }
else{
                        System.
out.println("response失败");
                    } }
catch (IOException e) {
                    e.printStackTrace();
                } }}).start();

  1. 在模块的Dependencies选项中添加Gson依赖库。
implementation 'com.google.code.gson:gson:2.8.6'
  1. 在模块对应的包名下创建JSON数据对应的实体类WeatherInfo类,实体类中的成员名称要与JSON数组的key值一致,并为每个属性添加getset方法。
public String getTemp() {return temp;}public void setTemp(String temp) {this.temp = temp;}public String getWeather() {return weather;}public void setWeather(String weather) {this.weather = weather;}public String getName() {return name;}public void setName(String name) { this.name = name;}public String getPm() { return pm;}public void setPm(String pm) { this.pm = pm;}public String getWind() { return wind;}public void setWind(String wind) { this.wind = wind;}
  1. MainActivity.java中完成getInfosFromJson()方法。采用Gson库来解析JSON格式的字符串,并解析后的数据存入List<WeatherInfo>集合并返回。
public static List<WeatherInfo> getInfosFromJson(String json)throws IOException {Gson gson=new Gson();//使用gson库解析JSON数据System.out.println(json);Type listType = new TypeToken<List<WeatherInfo>>(){}.getType();List<WeatherInfo> list = gson.fromJson(json,listType);System.out.println(json);return list;}
  1. Handler对象的handleMessage()方法中,调用getInfosFromJson()方法解析获取到的JSON数据,并将天气信息集合保存到weatherInfos中。
public void handleMessage(@NonNull Message msg) {super.handleMessage(msg);//获取子线程传递过来的json数据并保存到变量中String json= (String) msg.obj;System.out.println(json);List<WeatherInfo> weatherInfos = null;//调用getInfosFromJson()方法,将天气信息集合保存到weatherInfos中try {weatherInfos=getInfosFromJson(json);} catch (IOException e) {e.printStackTrace();}//循环读取weatherInfos中的每一条数据list = new ArrayList<Map<String, String>>();for (WeatherInfo info : weatherInfos) {map = new HashMap<String, String>();map.put("temp", info.getTemp());map.put("weather", info.getWeather());map.put("name", info.getName());map.put("pm", info.getPm());map.put("wind", info.getWind());list.add(map);}}};

实验运行结果截图:

 

 

图1 程序运行初始界面                         图2 切换城市天气显示界面

实验总结:

在此次的实验中:

一是对于OKhttp的移动端和服务端的数据交换有了更为清楚的认识,可以更加熟练的使用OKhttp进行数据的访问和交换;

二是对于json的数据交换和访问也进行了学习可以更好的进行json数据的获取、解析、利用;

另外再此次的实验过程由于自己的粗心,将json文件中的一个英文符号写成了中文,导致了程序的运行的失败;

Unterminated array at line 2 column 68 path $[2]

项目连接:https://download.csdn.net/download/qq_47112287/85415825icon-default.png?t=M4ADhttps://download.csdn.net/download/qq_47112287/85415825

http://www.jmfq.cn/news/5028283.html

相关文章:

  • wordpress建站最低配置/网站seo推广seo教程
  • 先做他个天猫网站/sem seo
  • 网站建设案例/国家高新技术企业
  • 男女做暖暖试看网站/北京十大教育培训机构排名
  • 手机wap网站开发的cms系统/广点通推广登录入口
  • 开发一个网站需要多少钱/优化神马网站关键词排名价格
  • 寮步网站制作/qq群推广方法
  • wordpress在哪里设置关键词和描述/哈尔滨seo优化培训
  • 做读书网站的前景/展示型网站设计公司
  • 网络系统设计/谷歌seo快速排名优化方法
  • 廊坊网站建设/米拓建站
  • 珠宝网站制作的理念/深圳网络推广方法
  • wordpress安装知更鸟主题/seo推广优化官网
  • 有个网站做字的图片/黄页网络的推广网站有哪些
  • 山西高端建设网站/竞价托管公司联系方式
  • 如何用vs的c 做网站/如何做好企业推广
  • wordpress找回密码页面/东莞优化seo
  • 做网站的公司怎么样/网站seo 优化
  • 做网站有哪些导航条/免费投放广告平台
  • 电子商务网站建设与维护pdf/商丘网络推广公司
  • 阳山做网站/优化网站技术
  • 设计网站/广州网站建设公司
  • 宣讲家网站做四讲四有模范/东莞seo快速排名
  • 建设一个网站/免费引流推广
  • 网站建设站点/怎么在百度上做广告推广
  • 新余 网站建设/出售网站平台
  • 苏州网站搜索引擎优化/seo招聘职责
  • 做网站需要注册公司吗/广州seo
  • 网站建设投标书免费/优化网站推广教程排名
  • 注册一个5000万空壳公司要多少钱/上海seo推广外包