Android studio解析含有GPS地理坐标的Json格式数据
Posted 小舟飞棹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio解析含有GPS地理坐标的Json格式数据相关的知识,希望对你有一定的参考价值。
最近做了一个阿里云物联网远程监控系统,需要从手机app端读取阿里云物联网的数据,订阅的数据包Json格式为:
{"deviceName1":"device_0001","Temperature":29,"Humidity":45,"GeoLocation":{"CoordinateSystem":2,"Latitude":3*.**8914,"Longitude":11*.**6077}}
数据包包含设备编号、温度、湿度,以及GPS地理坐标(坐标系统、经度和纬度),那么如何解析含有GPS地理坐标的Json格式数据呢?以下做一简要介绍。
一、引入Gson解析包
import com.google.gson.Gson;
二、构造Json数据包类JsonRootBean
package com.linkkit.aiot_android_demo;
public class JsonRootBean {
public String deviceName1;
public int Temperature;
public int Humidity;
public GeoLocation GeoLocation;
}
三、构造地理坐标类GeoLocation
package com.linkkit.aiot_android_demo;
public class GeoLocation {
public int CoordinateSystem;
public double Latitude;
public double Longitude;
}
注意:JsonRootBean类中的设备名称deviceName1、温度Temperature、湿度Humidity、坐标GeoLocation,以及GeoLocation类中的坐标系统CoordinateSystem、经度Latitude和纬度Longitude,英文字段名称要与Json中字段完全一致。
四、解析
TextView tv2 =(TextView)findViewById(R.id.textView2);
TextView tv3 =(TextView)findViewById(R.id.textView3);
TextView tv4 =(TextView)findViewById(R.id.textView4);
TextView tv5 =(TextView)findViewById(R.id.textView5);
TextView tv51 =(TextView)findViewById(R.id.textView51);
JsonRootBean newuser11=new Gson().fromJson(new String(message.getPayload()),JsonRootBean.class);
tv2.setText(newuser11.deviceName1);
tv3.setText(Integer.toString(newuser11.Temperature));
tv4.setText(Integer.toString(newuser11.Humidity));
tv5.setText(Double.toString(newuser11.GeoLocation.Latitude));
tv51.setText(Double.toString(newuser11.GeoLocation.Longitude));
其中,message.getPayload()为订阅获得的Json数据包。
五、解析结果
layout设计略
以上是关于Android studio解析含有GPS地理坐标的Json格式数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 Android Studio 在模拟器中设置 GPS 位置