unity3d c# http 請求json資料解析

coocco發表於2018-09-03
 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using UnityEngine.Networking;
 5 using LitJson;
 6 using System.IO;
 7 using System.Net;
 8 
 9 
10 public class Connet : MonoBehaviour {
11 
12     //private ArrayList List = new ArrayList(5);
13     //private Rect rect = new Rect(10, 50, 150, 150);
14     //請求地址,寫自己的請求地址就行
15     private string url = "http://xxxxxxxxx/ApiServlet?method=list";
16     //宣告 JsonData     LitJson 提供的方法
17     JsonData itemdata;
18     //新建 List 存放資料
19     private List<Item> dataBase = new List<Item>();
20 
21     IEnumerator Start()
22     {
23         
24         WWW getData = new WWW(url);
25         yield return getData;
26         
27         if (getData.error != null)
28         {
29             Debug.Log(getData.error);
30         }
31         else
32         {
33             Debug.Log(getData.text);
34         }
35         //把請求到的資料轉換成 JsonData array 型別,並儲存到itemdata裡
36         itemdata = JsonMapper.ToObject(getData.text);
37         //Debug.Log(itemdata);
38         //呼叫 ConstructItemDatabase() 函式
39         ConstructItemDatabase();
40         //測試資料
41         Debug.Log(dataBase[0].Name);
42     }
43     void ConstructItemDatabase()
44     {
45         //迴圈取資料
46         for (int i = 0; i < itemdata.Count; i++)
47         {
48             //把每個資料都新增到 dataBase 裡  要和請求到的json資料對應
49             dataBase.Add(new Item((int)itemdata[i]["longId"], (int)itemdata[i]["intId"], itemdata[i]["item"].ToString()));
50         }
51     }
52 }
53 
54 //新建Item類
55 public class Item
56 {
57     //定義Item內的資料
58     //固定寫法 XX{ get; set; }
59     public int ID { get; set; }
60     public int IntId { get; set; }
61     public string Name { get; set; }
62 
63     //接收上面的變數
64     public Item(int _longId, int _intId, string _name)
65     {
66         ID = _longId;
67         IntId = _intId;
68         Name = _name;
69     }
70 }

LitJson.dll下載地址

密碼:1znp

前一段時間一直糾結unity連線資料庫請求資料,浪費了不少時間。後來改用http請求,順利拿到資料,然後就著手於解析資料,就有了這篇文章

如果大家看不懂,這裡有一個視訊講的還是相當詳細的

相關文章