限 时 特 惠: 本站每日持续稳定更新内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410
正文
天气API
本文选择的是百度地图的API:
,点进官方界面,选择服务文档,页面中会有操作提示。
在请求参数的表格里可以查看要获取的行政区编码,点击行政区编码,会自动下载一个excel文件,可以找到想查询地区的id。
在ak一栏,申请开发者账号便会有一个开发者密钥。
将行政区划编码和开发者密钥填入基础服务的api对应位置上,便可以获取天气信息了。
获取信息
链接打开会是一段很长的Json字符串,可以通过Json在线解析网站:
对代码进行解析,可以看到解析出来就是想要的天气信息,接下来就要根据这些信息来写一个数据类用来接收这些数据。
1.编写数据类
通过解析出来的代码可以看出,数据是有层级关系的,在上面这张图中,最高的一层是最外面的括号,下一层是,,litjson,下一层有,now,,的下一层就有,,city,name,id这些信息,在编辑数据类是也要根据这些层级关系来写。
举例部分
public class CityData
{
public Result result;
}
public class Result
{
public Location location;
}
public class Location
{
public string country;
public string province;
public string city;
public string name;
public string id;
}
注意:不需要的数据可以不写。
2.下载并导入json库,下载地址:。找到下载路径
(-src)下的文件夹,直接拖入Unity中。
3.在脚本中声明地区的天气查询地址litjson,添加如下代码,运行后Log里会显示天气信息以及城市信息。
IEnumerator RequestCityName()
{
using (UnityWebRequest request = UnityWebRequest.Get(url))
{
yield return request.SendWebRequest();
yield return request;
if (request.isNetworkError || request.isHttpError)
{
Debug.Log("NetWork Error");
}
else
{
CityData cData = LitJson.JsonMapper.ToObject(request.downloadHandler.text);
Debug.Log(request.downloadHandler.text);
Debug.Log(cData.result.location.city);
}
}
}
效果如下:
.Get( url);是用于从URL中检索数据的对象,使用这个方法前要在命名空间中添加using .,官方介绍文档:
,是用于管理和处理从远程服务器接收的 HTTP 响应主体数据。
官方介绍文档:
交流群:
限 时 特 惠: 本站每日持续稳定更新内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410