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 怎么接收定位器信息

Android模拟器设置gps地理位置

使用 Android Studio 在模拟器中设置 GPS 位置

JavaScript 地理定位:检查距 2 gps 坐标的距离

如何测定地理坐标

iOS 如何在 2015 年将地址转换为 GPS 坐标(地理编码)?