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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章