Json 天气预报 Demo

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using LitJson;
using System;
using UnityEngine.Events;


public class HTTPQingQiuDemo : MonoBehaviour {

    public string url = "https://www.sojson.com/open/api/weather/json.shtml";
    public Button btn;

    public InputField txtCity;


    public Transform itemPrefab;//预设
    public Transform p;//父物体

    Sprite[] sprites;//天气图片数组 
  
    void Start () {
      
        sprites = Resources.LoadAll<Sprite>("天气");

      
      
        btn.onClick.AddListener(delegate ()
        {
            StartCoroutine(GetInfo());
        });
    }

    private IEnumerator GetInfo()
    {
        WWW www = new WWW(url   + "?city=" + txtCity.text );
        print(url + "?city=" + txtCity.text);

        //WWW www = new WWW("http://101.200.76.117/tq.php");
        yield return www;
        print(www.text);
        if (string .IsNullOrEmpty (www.error))
        {
            print(www.text);
            //将请求得到的Json转化成对象
            TQData tq = JsonMapper.ToObject<TQData>(www.text);
            //拿到数据
            DayInfo[] forecast = tq.data.forecast;

            foreach (DayInfo item in forecast )
            {
                Transform tu = Instantiate<Transform>(itemPrefab);
                //修改父容器
                tu.SetParent(p);
                //set日期
                 tu.Find ("date"). GetComponent <Text >().text =item .date ;
                //图片
                foreach (Sprite  itemS in sprites )
                {
                    if(item.type==itemS .name)
                    {
                      
                        tu.Find("sprite").GetComponent<Image>().sprite = itemS;
                    }
                }

                //set温度
                tu.Find("wendu").GetComponent<Text>().text = item.high  + "\n" + item.low;

                //set风向
                tu.Find("fx").GetComponent<Text>().text = item.fx;
                //set风力
                tu.Find("fl").GetComponent<Text>().text = item.fl;
              
            }
        }
    }

}
public class TQData
{
    public string date;
    public string message;
    public int status;
    public string city;
    public int count;
    public DataInfo data;
}

public class DataInfo
{
    public string shidu;
    public double pm25;
    public double pm10;
    public string quality;
    public string wendu;
    public string ganmao;
    public DayInfo yesterday;
    public DayInfo[] forecast;
}
/// <summary>
/// 每天信息
/// </summary>
public class DayInfo
{
    public string date;
    public string sunrise;
    public string high;
    public string low;
    public string sunset;
    public double   aqi;
    public string fx;
    public string fl;
    public string type;
    public string notice;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值