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 }
提取码:1znp
前一段时间一直纠结unity连接数据库请求数据,浪费了不少时间。后来改用http请求,顺利拿到数据,然后就着手于解析数据,就有了这篇文章
如果大家看不懂,这里有一个视频讲的还是相当详细的